簡體   English   中英

灰燼:刪除最后一個參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM