Difference between revisions of "What does "unary operator expected" mean"

From Linuxintro
imported>ThorstenStaerk
(Created page with "When you work with Linux scripts on the command line, you will sometimes get an error message saying unary operator expected And you may wonder what this means. To give you an e...")
 
imported>ThorstenStaerk
Line 4: Line 4:
 
  [[cat]] >test.sh<<EOF
 
  [[cat]] >test.sh<<EOF
 
  [[echo]] "how is your name? "
 
  [[echo]] "how is your name? "
  [[read]] name
+
  read name
  [[if]] [ $name = "thorsten" ]; then echo "I know you"; fi
+
  if [ $name = "Thorsten" ]; then echo "I know you"; fi
 
  EOF
 
  EOF
 
  [[chmod]] 777 test.sh
 
  [[chmod]] 777 test.sh
After you did this, you have a script test.sh
+
After you did this, you have a script test.sh that will ask you for your name and say "I know you" if your name is Thorsten.
 +
Now if you don't enter a name and just press enter you will get this:

Revision as of 14:24, 20 December 2011

When you work with Linux scripts on the command line, you will sometimes get an error message saying

unary operator expected

And you may wonder what this means. To give you an example, let's write a short bash script. Just copy and paste the lines below into a Linux Shell:

cat >test.sh<<EOF
echo "how is your name? "
read name
if [ $name = "Thorsten" ]; then echo "I know you"; fi
EOF
chmod 777 test.sh

After you did this, you have a script test.sh that will ask you for your name and say "I know you" if your name is Thorsten. Now if you don't enter a name and just press enter you will get this: