So I have this block of code. Basically, I’m taking file $i, checking if it’s got content or not, checking if I can read it, if I can open it, grab the first line and see if it’s a bash file. When I run this every time on a non-empty file, it was registers as true and echo’s bash.
## File is empty or not
if [[ -s $i ]]
then
## Can we read the file
if [[ -r $i ]]
then
## File has content
if [[ $(head -n 1 $i) = "#! /bin/bash" ]]
then
echo -n " bash"
fi
fi
else
## file does not have content
echo -n " empty"
fi
This is what does the check of if it’s bash:
if [[ $(head -n 1 $i) = "#! /bin/bash" ]]
Replace
[[with[and enclose$(head -n 1 $i)in quotes.[[is itself an operator that tests its contents.