Unix &引用;论据太少”;在Bourne Shell脚本中
我对这个很陌生。我只是想测试一个给定文件是否存在,如果它不存在,就触摸它。命令行响应我的参数太少。很明显,我遗漏了一些东西。谢谢你看Unix &引用;论据太少”;在Bourne Shell脚本中,unix,sh,Unix,Sh,我对这个很陌生。我只是想测试一个给定文件是否存在,如果它不存在,就触摸它。命令行响应我的参数太少。很明显,我遗漏了一些东西。谢谢你看 #!/bin/sh echo Enter File Name read filename if [ -s $filename ] then echo The File Exists! else echo File did not previously exist touch $filename fi 您有两个错误,一个是您编写了}而不是],另一个是您应该在结束]
#!/bin/sh
echo Enter File Name
read filename
if [ -s $filename ]
then
echo The File Exists!
else
echo File did not previously exist
touch $filename
fi
您有两个错误,一个是您编写了
}
而不是]
,另一个是您应该在结束]
之前添加一个空格
#!/bin/sh
echo Enter File Name
read filename
if [ -f "$filename" ]; then
echo The File Exists!
else
echo File does not exist
touch "$filename"
fi
正如michaelb958所建议的那样,您还应该引用$filename
,因为这样会给中包含空格的文件名带来问题,例如.html
你说你是新手,那么我建议使用一个语法突出的编辑器,这会帮助你发现问题。你有两个错误,一个是你写了
}
而不是]
,另一个是你应该在结束]之前添加一个空格。
#!/bin/sh
echo Enter File Name
read filename
if [ -f "$filename" ]; then
echo The File Exists!
else
echo File does not exist
touch "$filename"
fi
正如michaelb958所建议的那样,您还应该引用$filename
,因为这样会给中包含空格的文件名带来问题,例如.html
你说你是新手,然后我建议使用语法突出显示良好的编辑器,这将有助于你发现问题。第4行中有一个
}
而不是]
,这是我的错误,但问题仍然存在。谢谢你指出这一点,但这并不能改变我的问题(这样写的话效果很好,我只是没有正确调用它。FacePalm在第4行有一个}
而不是]
这是我的错误,但是问题仍然存在。谢谢你指出这一点,但这并不能改变我的问题。=(虽然写得很好,但我只是没有正确调用它。facepalmNote on[
:Quote参数,如“$filename”
。如果对包含空格的文件名不这样做,可能会导致有趣的行为。@michaelb958只是试图通过键入shell脚本的name@RossCournoyer如果我们知道问题出在脚本的什么地方,这会有所帮助。@michaelb958很抱歉,我在这里帮不上什么忙。=(所以在我的答案中使用代码后,您仍然会得到错误?是什么错误?您如何调用脚本?请注意[
:引用参数,如“$filename”
。如果对包含空格的文件名不这样做,可能会导致有趣的行为。@michaelb958只是试图通过键入shell脚本的name@RossCournoyer如果我们知道问题出在脚本的什么地方,这会有所帮助。@michaelb958很抱歉,我在这里帮不上什么忙。=(所以在我的答案中使用代码后,您仍然会得到错误?是什么错误?您如何调用脚本?