【发布时间】:2018-06-09 10:06:38
【问题描述】:
我在一个只有 sh 和 ash 可用的 busybox 环境中。
现在我正在编写一个脚本,其中我需要将除最后一个参数之外的所有参数传递给 ln。
到目前为止,它看起来像这样:
#!/bin/ash
TARGET="/some/path/"
for last; do true; done
ln $@ $TARGET$last
显然,现在我将最后一个参数传递了两次,第一次未修改,然后在其前面使用 $TARGET 进行修改。
如何去掉 $@ 中的最后一个参数?
【问题讨论】:
-
尝试在此处stackoverflow.com/questions/9057387/…修改此答案中的解决方案。
-
@namokarm echo "${@:2}" 只是切断了第一个参数的第一个字符,我该如何修改它以删除最后一个参数?
-
我无法在 atm 尝试,但你可以试试这个 echo "${@:1:$#-1}"
-
@namokarm 这给了我“非法号码:17�-1”
-
您尝试运行此 echo "${@:1:$#-1}" 还是作为脚本的一部分?