Я пишу скрипт оболочки, в котором я пытаюсь сравнить 2 переменных, которые являются строками. Все прекрасно работает, так как во всех переменных есть значение из команд, однако инструкция if if else else не работает.Bash if else сравнение строковых переменных
#!/bin/bash
name=$1
for i in {1...10}
do
username=sudo cat /class/rolls/CSCE215-*|awk 'BEGIN {FIELDWIDTHS = "32 20"} {print $2}'|cut -d " " -f6 |sed -n '1,1p'
if ["$name" == "$username"]
then
echo Correct Username
else
echo Incorrect Username
fi
done
Все учебники и помочь в Интернете, кажется, есть то, что я здесь, но я не могу выяснить, что случилось с моим.
Вы должны добавить пробелы после '[' и before ']': 'if [" $ name "==" $ username "]' –
Использовать [ShellCheck] (http://www.shellcheck.net/#) –