У меня есть скрипт, который имеет несколько входных файлов, как правило, это значения по умолчанию, хранящиеся в стандартном месте и вызываемые скриптом.аргументы командной строки bash, заменяющие значения по умолчанию для переменных
Однако иногда это необходимо для запуска с измененными входами.
В скрипте я в настоящее время говорю 3 переменные $ A $ B и $ C, теперь я хочу запустить его с нестандартным $ B, завтра я могу запустить его с не умолчанию $ A и $ B ,
Я имел взгляд вокруг, как для разбора аргументов командной строки: How do I parse command line arguments in Bash?
Но я не знаю, как иметь дело с тем, что некоторые наборами по командной строке aruguments части времени?
я не хватает респ, чтобы ответить на мой собственный вопрос, однако у меня есть решение:
https://stackoverflow.com/a/4610469/2339623
#!/bin/bash
a=input1
b=input2
c=input3
while getopts "a:b:c:" flag
do
case $flag in
a) a=$OPTARG;;
b) b=$OPTARG;;
c) c=$OPTARG;;
esac
done
Извиняюсь я, очевидно, не искавший так тщательно, как я думал ...
Для этой цели вы можете использовать 'getopts'. Есть много учебников, что-то вроде http://aplawrence.com/Unix/getopts.html может быть полезно для начала. – fedorqui
Спасибо, я видел это на вопросах, которые я связал. Мне было интересно, есть ли какой-то стандартный способ, чтобы аргументы команды перезаписывали переменные. Например, при определении функций в python можно установить значение по умолчанию. Я вижу, что с помощью проверки if я могу заменить значение по умолчанию аргументом командной строки, но не был уверен, был ли стандартный способ сделать это? – Lanrest