Как выполнить программу с параметрами, которые я получил? - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть скрипт a.py и я могу выполнить его с некоторыми параметрами

./a.py 1 2 --h 'Hi!'

Также у меня есть bash script sh.sh. И я хочу сделать что-то вроде этого:

./sh.sh ./a.py 1 2 --h 'Hi!'

И затем a.py начать с этими параметрами. Что я должен написать в sh.sh?

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Если вы выполните команду:

./sh.sh ./a.py 1 2 --h 'Hi!'

Тогда внутри сценария оболочки содержимое массива $@ будет:

'./a.py' '1' '2' '--h' 'Hi!'

Так что если вы хотите запустить что вы можете просто использовать:

"$@"
0 голосов
/ 26 февраля 2020

Ниже приведен список специальных переменных, предоставляемых оболочкой, которые вы можете напрямую использовать в сценарии оболочки.

Variable     Variable Details
$#          :  Total number of arguments passed to script
$0          :  Script name itself
$1 to $n    :  $1 for the first arguments, $2 for second argument till $n for n’th arguments. From 10’th argument, we must enclose them in curly braces eg. ${10}, ${11}
$*          :  Values of all the arguments. All agruments are double quoted
$@          :  Values of all the arguments
$?          :  Exit status id of last command
$$          :  Process ID of current shell
$!          :  Process id of last command
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...