как вы читаете аргументы в отдельных переменных

Это для удобства. Он сохраняет начальную команду и положение окна или панели. -Часто проще повторно создать -панель или повторно создать -окно, чем воссоздавать окно или панель. Это особенно актуально, если у вас есть окна, которые всегда запускают одно и то же приложение в одном и том же месте.

Он также сохраняет историю панели и статус выхода в процессе панели (или всех панелей ), поэтому вы можете просмотреть их, даже если панель закрылась.

0
22.09.2020, 09:32
2 ответа

Традиционным ответом для оболочек с массивами является использование массива:

arg=( "$@" )

Затем у вас есть $1в ${arg[0]}, $2в ${arg[1]}и т. д.

Чтобы перебрать их, используйте

for a in "${arg[@]}"; do
    # code that uses "$a" goes here
done

или, если у вас все еще есть данные в списке позиционных параметров и вы хотите сократить ввод,

for a do
    # code that uses "$a" goes here
done

Обратите внимание, что заключение в кавычки важно для защиты данных в исходных аргументах от разделения и/или использования в качестве шаблонов подстановки.

5
18.03.2021, 23:03

Традиционный ответ — использовать eval.

for ((i=1; i<=$#; i++))
do
    eval "arg$i=\${$i}"
done

(обратите внимание, что фигурные скобки необходимы, как в bash, $10будет интерпретироваться как ${1}0вместо${10})

1
18.03.2021, 23:03

Теги

Похожие вопросы