#bash #shell
#bash #оболочка
Вопрос:
#! /bin/bash
Var = `anil`
If [ -n "$Var" ] ; then
echo " nn"
else
echo "emp"
fi
Этот код не работает
Выводится как будто: синтаксис expressuin
Комментарии:
1. Всякий раз, когда у вас возникает ошибка сценария оболочки, хорошим первым шагом является вырезание и вставка вашего кода в shellcheck. очистите и исправьте ошибки (важные) и предупреждения (могут быть важными), которые она идентифицирует. Если у вас возникли проблемы с пониманием ее сообщений, тогда подойдите сюда и спросите. В этом случае вы обнаружите, что в вашем скрипте есть проблемы как с пробелами, так и с заглавными буквами.
2. @Anil: Вы нигде не используете grep в своем коде — кроме синтаксических ошибок в вашем скрипте.
3. Похоже, у вас ошибка в написании
if
.
Ответ №1:
Синтаксические ошибки в вашем фрагменте:
#!/bin/bash
Var=`grep something somefile`
if [ -n "$Var" ] ; then
echo " nn"
else
echo "emp"
fi
Ответ №2:
если «anil» — это строка, а не команда, это должно быть похоже Var="anil"
. Если это команда, она должна быть Var=$(anil)
. В обоих случаях, хотя в ней не должно быть пробелов. Также ваше значение if
должно быть в нижнем регистре.
#!/bin/bash
Var=`grep -i error anvil.txt`
if [ -n "$Var" ] ; then
echo " nn"
else
echo "emp"
fi
Комментарии:
1. #!/bin/bash set var =
grep - i error anil.txt
if [ -n «$Var»] ; затем echo «not empty», иначе echo «empty» fi2. @Anil смотрите обновленный код в ответе. Точно скопируйте вставку и протестируйте.