反正
重点就是要让那个
shell.sh
内的指令可以被执行
的意思啦!
咦!那我为何需要使用
./shell.sh
来下达指令?忘记了吗?回去
第十章内的指令搜寻顺序
察看一下,
你就会知道原因了!同时,由于
CentOS
默认用户家目录下的
~/bin
目录会被设定到
${PATH}
内,所以你也可以½
shell.sh
½立在
/home/dmtsai/bin/
底下
( ~/bin
目录需要自行设定
)
。此时,若
shell.sh
~/bin
内且具有
rx
的权限,
那就直½输入
shell.sh
即可执行该½本程序
那为何『
sh shell.sh
』也可以执行呢?这是因为
/bin/sh
其实就是
/bin/bash (
连½档
)
,使用
sh shell.sh
亦即告诉系统,我想要直½以
bash
的功能来执行
shell.sh
这个文件内的相关指令的意思,所以
此时
你的
shell.sh
只要有
r
的权限即可被执行喔
!而我们也可以利用
sh
的参数,如
-n
-x
来检查与
追踪
shell.sh
的语法是否正确呢!
^_^
.
撰写第一支
script
在武侠世½中,不论是那个门派,要学武功要从扫地与蹲马步做起,那么要学程序呢?呵呵,肯定是
由『秀出
Hello World
!』
这个字眼开始的!
OK
!那么鸟哥就先写一支
script
给大家瞧一瞧:
[dmtsai@study ~]$
mkdir bin; cd bin
[dmtsai@study bin]$
vim hello.sh
#!/bin/bash
# Program:
#
This program shows "Hello World!" in your screen.
# History:
# 2015/07/16
VBird
First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo
-
e "Hello World!
\
a
\
n"
exit 0
在本章当中,请½所有撰写的
script
放置到你家目录的
~/bin
这个目录内,未来比½好管理啦!上
面的写法当中,鸟哥主要½整个程序的撰写分成数段,大致是这样:
1.
第一行
#!/bin/bash
在宣告这个
script
使用的
shell
名称:
因为我们使用的是
bash
,所以,必须要以『
#!/bin/bash
』来宣告这个文件内的语法使用
bash
的语法!
那么当这个程序被执行时,他就能够加载
bash
的相关环境配置文件
(
一般来说就是
non-login shell
~/.bashrc
)
并且执行
bash
来使我们底下的指令能够执行!这很重要的!
(
在很多状况中,如果没有设定好
这一行,
那么该程序很可能会无法执行,因为系统可能无法判断该程序需要使用什么
shell
来执行啊!
)
2.
程序内容的说明:
整个
script
当中,除了第一行的『
#!
』是用来宣告
shell
的之外,其他的
#
都是『批注』用途!
所以
上面的程序当中,第二行以下就是用来说明整个程序的基本数据。一般来说,
½议你一定要养成说明该
script
的:
1.
内容与功能;
2.
版本信息;
3.
作者与联络方式;
4.
½檔日期;
5.
历史纪录
等等。这½
有助于未来程序的改写与
debug
呢!
3.
主要环境变量的宣告:
½议务必要½一些重要的环境变量设定好,鸟哥个人认为,
PATH
LANG (
如果有使用到输出相关的信