Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

while running this programe i occured one error as ambigous redirect

the following line in my bash script

cat >> $file_name 

give me this error:

./l7.sh: line 12: $file_name: ambiguous redirect

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Here are the full code

https://github.com/vats147/public/blob/main/l7.sh

why?

>Solution :

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.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading