Я хотел бы передать все аргументы скрипта функции foo
, и если первый аргумент равен something
, передайте все остальные аргументы функции bar
.Как удалить элемент в массиве Bash?
Я реализовал это так:
foo() {
if [ "$1" = 'something' ]; then
args=("[email protected]")
unset args[0]
bar $args
fi
}
foo [email protected]
Это позволяет упростить это?
Спасибо! Действительно ли кавычки нужны в 'foo '$ @" 'и' bar' $ @ "'? –
@MishaMoroshko это не обязательно, но вы всегда должны указывать свои переменные, если у вас явно нет причин. Большую часть времени вы * не хотите разбивать слово. Я не цитировал '$ 1', потому что у вас нет проблем с разбиением на слова внутри' [[]] '. Я не верю, что то же самое относится к '[]' хотя – SiegeX
Как всегда хорошая информация @SiegeX .. :) +1 –