Bash-скрипт не обрабатывает переданные входные аргументы
Я бегу:
python Parser.py "Bot Pick Nut"
В командной строке Linux через MobaXterm. Это работает как задумано, возвращает True. Проблема, с которой я сталкиваюсь, заключается в том, что при запуске через скрипт оболочки возвращается false? Кто-нибудь может посоветовать, почему моя оболочка не дает результат моего скрипта Python правильно?
Сценарий:
#!/bin/sh
python Parser.py argv[0]
Команда:
./Shell.sh "Bot Pick Nut"
1 ответ
Решение
bash
позиционные параметры начинаются с $0
с $1
являясь первым аргументом для сценария, впоследствии пронумерованного от $2
..$n
#!/bin/sh
python Parser.py "$1"
Простая таблица аргументов в bash
,
$0 the first positional parameter, equivalent to argv[0] in C, see the first argument
$FUNCNAME the function name (attention: inside a function, $0 is still the $0 of the shell, not the function name)
$1 … $9 the argument list elements from 1 to 9
${10} … ${N} the argument list elements beyond 9 (note the parameter expansion syntax!)
$* all positional parameters except $0, see mass usage
$@ all positional parameters except $0, see mass usage
$# the number of arguments, not counting $0