сценарий оболочки - слишком много аргументов - PullRequest
0 голосов
/ 09 января 2020

Я не уверен, что является причиной этой ошибки. Сценарий продолжает выполняться и вводит оператор if без проблем.

"./ test. sh: строка 79: [: слишком много аргументов"

if [ grep -Fq "variable=00000000000" /home/me/test.txt ] ; then             #line 79
             ........
             ........
else
             echo "hi"
fi

Ответы [ 2 ]

0 голосов
/ 09 января 2020

[ ... ] не является частью синтаксиса оператора if. [ - это имя команды, для которого требуется последний аргумент ] для имитации синтаксиса look . Бросьте их, если вы хотите запустить другую команду, чей статус выхода if должен проверяться.

if grep -Fq "..." /honme/me/test.txt; then
0 голосов
/ 09 января 2020

Просто используйте:

if grep -Fq "variable=00000000000" /home/me/test.txt; then
[...]

или

grep -Fq "variable=00000000000" /home/me/test.txt && echo 'true'

Пояснения

Каждая команда имеет код возврата, который вы можете отобразить с помощью:

true
echo $? # return 0, true in bash
false
echo $? # return 1: false in bash

Он называется логические логики c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...