shell脚本解答
发布网友
发布时间:2022-04-24 17:52
我来回答
共2个回答
热心网友
时间:2023-10-28 14:03
错误:
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,需要报错并提示正确的用法。
热心网友
时间:2023-10-28 14:04
#! /bin/sh
fn="$*"
if test -r "$fn"
then
printf "$fn file is ok"
cat $fn
else
printf "$fn file is not ok"
fi
你的错误有
1,test -r
2,if逻辑错误
3,$#代表参数个数