Что такое bash, эквивалентный пакетам "% * - PullRequest
0 голосов
/ 05 октября 2019

Если у меня есть командный файл и я хочу использовать все заданные аргументы сценария, я могу использовать %*.

Пример a.bat

echo %*

Вызов a.bat 1 2 3 4 дает:

1 2 3 4

как я могу сделать то же самое в скрипте bash?

1 Ответ

3 голосов
/ 05 октября 2019

"$*" вернет одну строку со всеми аргументами, разделенными пробелом. "$@" вернет N строк, по одной на каждый аргумент.

Пример a.sh:

echo "$@"

Вызов a.sh 1 2 3 4 дает:

1 2 3 4

Другой примериз a.sh:

printf "%s\n" "$@"

Вызов a.sh 1 '2 2' '3 3 3' '4 4 4 4' дает:

1
2 2
3 3 3
4 4 4 4

В отличие от a.sh:

printf "%s\n" "$*"

, который будет печатать:

1 2 2 3 3 3 4 4 4 4
...