shell - ash:删除最后一个参数
问题描述
我在一个只有 sh 和 ash 可用的 busybox 环境中。
现在我正在做一个脚本,我需要将除最后一个参数之外的所有参数传递给 ln。
到目前为止,它看起来像这样:
#!/bin/ash
TARGET="/some/path/"
for last; do true; done
ln $@ $TARGET$last
显然,现在我将最后一个参数传递了两次,第一次未修改,然后在其前面使用 $TARGET 进行修改。
如何摆脱 $@ 中的最后一个参数?
解决方案
你可以试试这个方法
last_arg () {
shift $(($#-1))
echo "$@"
}
last=$(last_arg "$@")
echo "all but last = ${@%$last}"
推荐阅读
- sql - 如何根据我的选择语句中的其他 3 列创建新列
- angularjs - 将服务的值保存在变量中
- mysql - 无法使用联合引擎 mysql 在 ipv6 上连接远程服务器
- apache - 在 > 1024 的端口上运行 apache 容器
- android-recyclerview - 拖放后如何将项目位置存储在 RecyclerView 中
- python - python中一个大列表的总和
- python - 查询关于时区的一天
- sql-server - 将 Microsoft SQL Server 中的文件表链接到 Microsoft Access 2016 中的表
- node.js - Elasticsearch nodejs检查队列是否已满
- html - 具有多个 colspan 的两个表头