Skip to content
Advertisement

while running this programe i occured one error as ambigous redirect

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.

Advertisement