shell脚本解答
下面的shell脚本将文件名作为参数,检查其访问性和可读性,若文件可读则在屏幕上打印该文件内容,请指出该脚本有什么错误#!/bin/shif–r$1then#netexi...
下面的shell脚本将文件名作为参数,检查其访问性和可读性,若文件可读则在屏幕上打印该文件内容,请指出该脚本有什么错误
#!/bin/sh
if –r $1
then #net exists and is readable
echo “File $1 does net exist or not readable.”
exit
else
cat $#
fi 展开
#!/bin/sh
if –r $1
then #net exists and is readable
echo “File $1 does net exist or not readable.”
exit
else
cat $#
fi 展开
2个回答
展开全部
错误:
1. 需要用 test 命令或 [ ] 来测试文件是否可访问并可读。
2. 判断逻辑错误,if 与 else 里的内容颠倒。
3. $#表示参数个数,取第一个参数应该用$1。
4. $1最好用""包含起来,以防文件路径或文件名中有空格。
修改如下:
#!/bin/sh
if [ -r "$1" ]
then
cat "$1"
else
echo "File $1 does not exist or is not readable."
exit 1
fi
exit 0
另外,建议在脚本开头加上对参数个数的判断(如下)。
if [ $# -ne 1 ]
then
echo "Error: You MUST input one parameter!"
echo "Usage: $0 {fileName}"
exit 1
fi
因为按照你的表达,只应该有一个参数,就是文件名(文件全路径)。如果参数个数不是1,需要报错并提示正确的用法。
1. 需要用 test 命令或 [ ] 来测试文件是否可访问并可读。
2. 判断逻辑错误,if 与 else 里的内容颠倒。
3. $#表示参数个数,取第一个参数应该用$1。
4. $1最好用""包含起来,以防文件路径或文件名中有空格。
修改如下:
#!/bin/sh
if [ -r "$1" ]
then
cat "$1"
else
echo "File $1 does not exist or is not readable."
exit 1
fi
exit 0
另外,建议在脚本开头加上对参数个数的判断(如下)。
if [ $# -ne 1 ]
then
echo "Error: You MUST input one parameter!"
echo "Usage: $0 {fileName}"
exit 1
fi
因为按照你的表达,只应该有一个参数,就是文件名(文件全路径)。如果参数个数不是1,需要报错并提示正确的用法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询