пепел: удалить последний параметр - PullRequest
0 голосов
/ 09 июня 2018

Я нахожусь в среде busybox, в которой есть только sh и ash.

Сейчас я делаю сценарий, в котором мне нужно передать все, кроме последнего параметра, ln.

Пока это выглядит так:

#!/bin/ash
TARGET="/some/path/"

for last; do true; done

ln $@ $TARGET$last

Очевидно, что теперь я передаю последний параметр дважды, сначала неизмененным, затем измененным с помощью $ TARGET перед ним.

Какможно ли избавиться от последнего параметра в $ @?

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Получил рабочее решение сейчас, это не так хорошо, и он меняет параметры, но до тех пор, пока не будет найдено лучшее решение, он будет это делать.

for last; do true; done
while [[ "$1" != "$last" ]] ; do
    args="$args $1"
    shift
done

echo $args
0 голосов
/ 10 июня 2018

Вы можете попробовать этот способ

last_arg () {
shift $(($#-1))
echo "$@"
}
last=$(last_arg "$@")
echo "all but last = ${@%$last}"
...