export PATH
# 1.
使用者
名,并且判
使用者是否真的有
入字符串?
echo
-
e "Please input a filename, I will check the filename's type and permission.
\
n
\
n"
read
-
p "Input a filename : " filename
test
-
z ${
filename} && echo "You MUST input a filename." && exit 0
# 2.
文件
是否存在?若不存在
则显
息并
½
½
test !
-
e ${filename} && echo "The filename '${filename}' DO NOT exist" && exit 0
# 3.
始判
文件
型与
test
-
f ${filename} && filetype="regulare file"
test
-
d ${filename} &&
filetype="directory"
test
-
r ${filename} && perm="readable"
test
-
w ${filename} && perm="${perm} writable"
test
-
x ${filename} && perm="${perm} executable"
# 4.
出信息!
echo "The filename: ${filename} is a ${filetype}"
echo "And the permissions for you are
: ${perm}"
如果你执行这个½本后,他会依据你输入的档名来½行检查喔!先看是否存在,再看为文件或目录类
型,最后判断权限。
但是你必须要注意的是,
由于
root
在很多权限的限制上面都是无效的,所以
使用
root
执行这个½本时,
常常会发现与
ls -l
观察到的½果并不相同
!所以,½议使用一般使用
者来执行这个½本试看看。
12.3.2
利用判断符号
[ ]
除了我们很喜欢使用的
test
之外,其实,我们还可以利用判断符号『
[ ]
(
就是中括号啦
)
来½行
数据的判断呢!
举例来说,如果我想要知道
${HOME}
这个变量是否为空的,可以这样做:
[dmtsai@study ~]$
[
-
z "${HOME}" ] ; echo $.
使用中括号必须要特别注意,因为中括号用在很多地方,包括通配符与正规表示法等等,所以如果要
bash
的语法当中使用中括号作为
shell
的判断式时,必须要注意
中括号的两端需要有空格符来分
隔喔
假设我空格键使用『□』符号来表示,那么,在这些地方你都需要有空格键:
[ "$HOME" == "$MAIL" ]
[
"$HOME"
==
"$MAIL"
]
Tips
你会发现鸟哥在上面的判断式当中使用了两个等号『
==
』。其实在
bash
当中使用一