Я пытаюсь решить, как я могу выполнить второй параметр ($2
) непосредственно после $1
.
Для примера:
./file.sh file1.txt file2.sh
Я пытаюсь вызвать file2.sh
после ./file.sh
, но ничего не получается. И я не знаю, как я должен использовать "shift"...
Кто-нибудь может помочь мне, пожалуйста?
Вы хотите что-нибудь подобное?
./file.sh file1.txt && file2.sh
Он выполнит сценарий file2.sh только тогда, когда сценарий file.sh завершится с нулевым статусом (без ошибок).
Вы также можете использовать ||
вместо &&
. Если первый не сработает, он запустит второй сценарий.
В file.sh
:
#!/bin/sh
first="$1"
shift
# Run the rest of the command line as a command
"$@"
Это поместит первый аргумент командной строки в переменную сначала
, а затем сдвинет это значение из позиционных параметров. Последняя строка скрипта выполнит остальные позиционные параметры как команду.
$ ./file.sh hello echo world
world