Я пытаюсь выполнить команду, но мне нужно получить аргумент командной строки. Вот моя проблема:Аргументы командной строки или аргумент аргумента case
Это код:
pl_function(){
node=$(echo "$1" | awk -F'\.' '{print $2}')
echo $node
}
У меня есть случай заявление:
case "$1" in -pl.*)
pl_function
;;
esac
Когда я запускаю это, печатает пустой.
Кроме того, я хотел бы включить getopts
, чтобы не беспокоиться о порядке аргументов. Предположим, у меня есть -location
, за которым следует аргумент и -grep
, за которым следует аргумент и -def_location
, за которым следует аргумент.
Как я могу использовать getopts
в этом случае?
Как насчет использования функций с незарегистрированными именами? 'my_function' может быть безвредным. – fedorqui
да простите! его фактически называется pl_function – user2864207
У вас [бесполезное использование эха] (http://partmaps.org/era/unix/award.html#echo), и вы не можете правильно указать переменную, которую вы 'echo'. Функция может быть просто «эхо» $ 1 »| awk -F '\.' '{print $ 2}' ', но см. также ответ @ JohnKugelman. – tripleee