2014-02-22 38 views
1
#!/bin/bash 

echo "Enter the o/p file name" 
read op_file 
echo "Enter the count" 
read count 

echo "OP filename : " 
echo $op_file 
if [ `ls $op_file` ]; then 
echo "O/P file found" 
else 
exit 0 
fi 

我想检查文件名是否存在或没有。如果文件存在,请继续进行。虽然上面的代码不会给我错误。它打印找到的O/P文件,即使该文件没有被ls找到。

回答

1

脚本可以进行重构,以这样的:

#!/bin/bash 
read -p "Enter the o/p file name" op_file 
read -p "Enter the count" count 
echo "OP filename: $op_file" 

if [ -f "$op_file" ]; then 
    echo "O/P file found" 
else 
    exit 1 
fi 

最好使用-f "$file"检查是否存在文件。另见man test

1

你如果使用-e运营商,这将检查一个文件的存在,所以:

if [ -e $op_file ]; then 
    echo "O/P file found" 
else 
    exit 0 
fi 
相关问题