[英]ash: Remove last param
我處於一個只有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}"
現在有一個可行的解決方案,它不是很好,並且可以改變參數,但是直到找到更好的解決方案為止,它才能做到。
for last; do true; done
while [[ "$1" != "$last" ]] ; do
args="$args $1"
shift
done
echo $args
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.