Being new to some aspects of BASH, I tried to reduce the quantity of scripts by introducing a comparison test into an existing working script.
The script refused to work until I placed [ ] around the actual test. The second test, in the same script, misfunctioned until I removed the [ ] around the second test.
---------------------------- NON WORKING first comparison
5 if $dir="law" 6 then 7 www="law" 8 dir=${file:0:5} 9 else 10 www="www/s" 11 fi
Error message = /root/bin/.us: line 5: law=law: command not found
---------------------------------
WORKING first comparison
5 if [ $dir="law" ] 6 then 7 www="law" 8 dir=${file:0:5} 9 else 10 www="www/s" 11 fi
------------------------------------
NON-WORKING second comparison
15 if [ $file='law00.css' ] 16 then 17 file=$dir/$file 18 echo "css" 19 else 20 file=$dir/$file.php 21 echo "no css" 22 fi 23 #----------------------------
Every comparison in the second test, including wrong comparisons, satisfy the test and caused the 'css' display.
When line 15 was changed to
15 if [ $file='law00css' ]
everything continued to match including items with no 'css' in the file name.
Baffled.
Are C5 BASH scripts restricted to only 1 IF comparison ?