if [ $# -eq 0 ] ;then echo "未输入任何参数,请输入参数" echo "用法:$0 [文件名|目录名]" fi if [ -f $1 ];then echo "该文件,存在" ls -l $1 else echo "没有该文件" fi if [ -d $1 ];then echo "该目录,存在" ls -ld $2 else echo "没有该目录" fi为啥我没有给任何参数也会往下继续执行判断
时间: 2023-11-27 15:50:56 浏览: 88
linux命令之目录监控 字符串拆分 监控命令运行结果 统计行数 去除文本头尾空格 获取网卡名浮点数运算等命令使用技巧
这是因为在你的代码中,判断是否输入参数的语句和后面的判断文件或目录是否存在的语句是分开的,没有连续的逻辑判断。当你没有输入参数时,第一个条件 `$# -eq 0` 是成立的,就会执行后面的语句。
你可以将这两个判断语句合并,使用 `elif` 来实现连续的逻辑判断,如下所示:
```bash
if [ $# -eq 0 ]; then
echo "未输入任何参数,请输入参数"
echo "用法: $0 [文件名|目录名]"
elif [ -f $1 ]; then
echo "该文件存在"
ls -l $1
elif [ -d $1 ]; then
echo "该目录存在"
ls -ld $1
else
echo "不存在该文件或目录"
fi
```
这样,当你没有输入参数时,就会直接输出提示信息,不会执行后面的判断语句。如果输入的参数既不是文件也不是目录,则会输出提示信息 "不存在该文件或目录"。
阅读全文