Ответ 1
Вы должны reset все аргументы. Для изменения, например. $3
:
$ set -- "${@:1:2}" "new" "${@:4}"
В основном вы set все аргументы к их текущим значениям, за исключением тех, которые вы хотите изменить.
Есть ли способ изменить аргументы командной строки в Bash script. Скажем, например, Bash script вызывается следующим образом:
./foo arg1 arg2
Есть ли способ изменить значение arg1 в script? Скажем, что-то вроде
$1="chintz"
Вы должны reset все аргументы. Для изменения, например. $3
:
$ set -- "${@:1:2}" "new" "${@:4}"
В основном вы set все аргументы к их текущим значениям, за исключением тех, которые вы хотите изменить.
Вам лучше назначить $1
и $2
более значимые переменные (я не знаю, input_filename = $1
и output_filename = $2
или что-то еще), а затем перезаписать одну из этих переменных (input_filename = 'chintz'
), оставив вход в script не изменился, если он понадобится в другом месте.