linux – 显示文件权限的bash脚本提供了错误的输出

我正在学习bash,并希望你们能用以下脚本帮我解决发生的事情

#!/bin/bash

#primer if
if [ -f $file1 ]; then
        echo "file1 is a file"
else
        echo "file1 is not a regular file"
fi
#segundo if
if [ -r $file1 ]; then
        echo "file1 has read permission"
else
    echo "file1 doesnot have read permission"
fi
#tercer if
if [ -w $file1 ]; then
        echo "file1 has write permission"
else
    echo "file1 doesnot have write permission"
fi
#cuarto if
if [ -x $file1 ]; then
        echo "file1 has execute permission"
else
    echo "file1 doesnot have execute permission"
fi

在我看来,如果我更改文件权限并不重要,因为输出始终是相同的

fmp@eva00:~/Books/2012/ubuntu_unleashed$./script.sh 
file1 is a file
file1 has read permission
file1 has write permission
file1 has execute permission
fmp@eva00:~/Books/2012/ubuntu_unleashed$ll file1
-rw-r--r-- 1 fmp fmp 0 Aug 30 13:21 file1
fmp@eva00:~/Books/2012/ubuntu_unleashed$chmod 200 file1
fmp@eva00:~/Books/2012/ubuntu_unleashed$./script.sh 
file1 is a file
file1 has read permission
file1 has write permission
file1 has execute permission
fmp@eva00:~/Books/2012/ubuntu_unleashed$ll file1
--w------- 1 fmp fmp 0 Aug 30 13:21 file1
fmp@eva00:~/Books/2012/ubuntu_unleashed$chmod 000 file1 
fmp@eva00:~/Books/2012/ubuntu_unleashed$ll file1
---------- 1 fmp fmp 0 Aug 30 13:21 file1
fmp@eva00:~/Books/2012/ubuntu_unleashed$./script.sh 
file1 is a file
file1 has read permission
file1 has write permission
file1 has execute permission

file1可以是空的,但仍然输出相同,进行相同的测试

任何人都可以向我解释有什么问题吗?

谢谢

BTW这里的脚本是比较3的修改版本,在ubuntu发布的2011年版本(书籍网站http://ubuntuunleashed.com/)第233页

解决方法:

file1变量未定义.

你应该在你的脚本开头添加file1 =“file1”

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...