Что означает следующая выделенная команда UNIX ???Что означает следующая команда UNIX?
grep -n "$string" $filename
if[$? -eq 0] #what does this command mean???
then
echo "string is match"
Что означает следующая выделенная команда UNIX ???Что означает следующая команда UNIX?
grep -n "$string" $filename
if[$? -eq 0] #what does this command mean???
then
echo "string is match"
Не пытайтесь сделать смелый код (вы можете это сделать, но это трудно:.. if [ $? -eq 0 ]
и отступы не работает должным образом Просто поместите комментарий после строки if [ $? -eq 0 ] # What does this line mean?
Вы должны добавить недостающее fi
для полноты картины.
grep -n "$string" $filename
if[$? -eq 0] # What does this command mean?
then
echo "string is matched"
fi
, который получают путем написания:
> `grep -n "$string" $filename`
> **`if[$? -eq 0] # What does this command mean?`**
> `then`
> `echo "string is matched"`
> `fi`
$?
является статус выхода последней выполненной команды, что означает grep
в этом контекст. 0 указывает на успех; любой ненулевой статус указывает на отказ какого-либо рода. В целом не существует стандарта для статусов выхода. POSIX законодательно устанавливает статус выхода для некоторых команд. Например, для grep
, он говорит:
0
- одна или несколько строк были выбраны.1
- линий не выбрано.>1
- Произошла ошибка.Как написано, ваш фрагмент кода означает «выполнить команду if[0
или if[1
с двумя аргументами, -eq
и 0]
. Это в основном бессмысленно, потому что вряд ли будут команды с этими именами.
Что, вероятно, написано использует пробелы - пробелы важны в оболочке в целом и команды испытания в частности:
if [ $? -eq 0 ]
Это означает «испытание ли значение $?
равно нулю (что означало бы, что grep
казнены успешно).
Однако нет необходимости использовать команду тестирования. Сценарий может быть написан:
if grep -n "$string" "$filename"
then
echo "string is matched"
fi
И если вы не хотите, чтобы увидеть выход из grep
, просто получить статус, а затем использовать grep -q
вместо grep -n
.
введите точный код, который вы используете, не ставьте '**' все это, поскольку звезды означают что-то в сценарии оболочки! –
у вас может быть дополнительное пространство –
Можете ли вы проверить, что вы публикуете, поскольку я подозреваю, что вы имеете в виду '$?', А не '$?' –