Bourne shell脚本,用于测试文件并在未找到时创建

时间:2014-08-11 02:04:13

标签: shell

需要一个脚本来测试文件是否存在并输出"找到文件"如果它存在,或者"文件未找到"如果它不存在然后创建文件。这可以用位置参数完成吗?谢谢!

!/ bin / sh的

如果找到文件 然后 echo"找到文件" 其他 echo"找不到文件" &安培;&安培;触摸文件 网络

2 个答案:

答案 0 :(得分:2)

if [[ -e /path/to/file ]]; then
    echo "File found!"
else
    echo "File not found! Creating it"
    touch /path/to/file
fi

同时查看http://tldp.org/LDP/abs/html/fto.html

答案 1 :(得分:2)

在回答有关/bin/sh的问题时,您可以轻松将上述内容修改为:

filenm=/path/to/file/to/check.txt
if [ -f "$filenm" ] ; then
    printf "file exists\n"
else
    printf "file does not exist -- creating\n"
    touch "$filenm"
fi

你也可以用single-bracket test替换[ stuff ]以上test -f "$filenm"(在结束引号和分号之间留一个空格(例如if test -f "$filenm" ; then)。你也可以完成与复合命令相同。(使用test但您也可以替换[ ]

test -f "$filenm" && printf "file exists" || { printf "file does not exist\n"; touch "$filenm"; }

测试并创建文件后,最好验证是否已创建文件:

test -f "$filenm" || touch "$filenm"
test -f "$filenm" || { printf "error, unable to create %s\n" "$filenm"; exit 1; }