2016-04-29 5 views
0

Новый скрипт bash, мне нужно проверить, является ли первое слово в группе равным второму слову в Users.Bash script if -eq

Group=`echo $rules | egrep -v 'Test'` 
Users=`echo $rules | grep -i 'Test' | awk '{print substr($0, index($0,$2))}'` 

if [ '$Group' -eq '$Users' ]; 
then 
echo $Group 
echo $Users 

else 
: 
fi 

Могу ли я использовать что-то подобное или как это возможно?

if [ '$Group $1' -eq '$Users $2' ]; 

или

if [ '^$Group' -eq '^$Users' ]; 
+1

Можете ли вы предоставить несколько примеров ввода для воспроизведения? Кроме того, я думаю, вам нужны двойные кавычки для расширения значений -> 'if [" $ Group "-eq" $ Users "]'. – fedorqui

ответ

2

Оператор -eq используется для целого сравнения. Если вы хотите сравнить строки вы должны использовать = так:

if [ "$a" = "$b" ] 

что эквивалентно

if [ "$a" == "$b" ] 

, но не эквивалентны (обратите внимание на пробелы)

if [ "$a"="$b" ] 

Однако, если вы хотите использовать регулярное выражение (вы использовали ^, который не является шаблоном шаблона шарика) в выражении if, смотрите here

Это сказало, что вы должны сделать расщепление перед оператором if и поместить пользователей и группы в два массива.

 Смежные вопросы

  • Нет связанных вопросов^_^