Это для удобства. Он сохраняет начальную команду и положение окна или панели. -Часто проще повторно создать -панель или повторно создать -окно, чем воссоздавать окно или панель. Это особенно актуально, если у вас есть окна, которые всегда запускают одно и то же приложение в одном и том же месте.
Он также сохраняет историю панели и статус выхода в процессе панели (или всех панелей ), поэтому вы можете просмотреть их, даже если панель закрылась.
Традиционным ответом для оболочек с массивами является использование массива:
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
Обратите внимание, что заключение в кавычки важно для защиты данных в исходных аргументах от разделения и/или использования в качестве шаблонов подстановки.
Традиционный ответ — использовать eval
.
for ((i=1; i<=$#; i++))
do
eval "arg$i=\${$i}"
done
(обратите внимание, что фигурные скобки необходимы, как в bash
, $10
будет интерпретироваться как ${1}0
вместо${10}
)