This is my following bash script
cat >> $file_name
And I receive this kind of error:
./l7.sh: line 12: $file_name: ambiguous redirect
Here are the full code
https://github.com/vats147/public/blob/main/l7.sh
And Why I am getting this error? even my syntax is correct.
Advertisement
Answer
Into the parameter file_name
you must assign $1
, which will pass to the current file as an input parameter.
#! /bin/bash echo -e " Enter file name : c" read file_name=$1 if [ -f $file_name ] then if [ -w $file_name ] then echo " type some text data. to quit press enter " #cat > $file_name(single angular bracket use for overwritten) #cat >> $file_name(two angular bracket use for appending a text) cat >> $file_name else echo " file not have write permission" fi else echo "file not exist" fi
These are positional arguments of the script.
Executing ./script.sh Hello World
will make
$0 = ./script.sh $1 = Hello $2 = World
Note
If you execute ./script.sh
, $0
will give output ./script.sh
but if you execute it with bash script.sh
it will give output script.sh
.