Please input your first name:
VBird
Please input your last name:
Tsai
Your full name is:
VBird Tsai
[dmtsai@study bin]$
echo
${firstname} ${lastname}
VBird Tsai
<==
嘿嘿!有
生喔!
竟然生效了!没错啊!因为
source
script
的执行方式可以使用底下的图示来说明!
showname.sh
会在父程序中执行的,因此各项动作都会在原本的
bash
内生效!这也是为啥你不注销系统而要让某
些写入
~/.bashrc
的设定生效时,需要使用『
source ~/.bashrc
』而不能使用『
bash ~/.bashrc
』是一
样的啊!
12.2.2
showname.sh
在父程序当中运作的示意图
12.3
善用判断式
在第十章中,我们提到过
$.
这个变量所代表的意义,
此外,也透过
&&
||
来作为前一个指令执
行回传值对于后一个指令是否要½行的依据。第十章的讨论中,如果想要判断一个目录是否存在,
时我们使用的是
ls
这个指令搭配数据流重导向,最后配合
$.
来决定后续的指令½行与否。
但是
否有更简单的方式可以来½行『条件判断』呢?有的~那就是『
test
』这个指令。
12.3.1
利用
test
指令的测试功能
当我要检测系统上面某些文件或者是相关的属性时,利用
test
这个指令来工作真是好用得不得了,
举例来说,我要检查
/dmtsai
是否存在时,使用:
[dmtsai@study ~]$
test
-
e /dmtsai
执行½果并不会显示任何讯息,但最后我们可以透过
$.
&&
||
来展现整个½果呢!
例如我
们在½上面的例子改写成这样:
[dmtsai@study ~]$
test
-
e /dmtsai && echo "exist" || echo "Not exist"
Not exist
<==
½
示不存在啊!
最终的½果可以告知我们是『
exist
』还是『
Not exist
』呢!那我知道
-e
是测试一个『东西』在不在,
如果还想要测试一下该档名是啥玩意儿时,还有哪些标志可以来判断的呢?呵呵!有底下这些东西喔!
测试的标志
代表意义