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
Другие вопросы по тегам