Shell脚本学习总结

一、运行Shell脚本的两种方式

例:脚本名为test.sh
1、作为可执行程序执行

//此种方式必须在第一行指定解释器信息,例: #!/bin/bash
chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
2、直接调用解释器执行

/bin/sh test.sh #一般情况/bin目录已经处于PATH中,所以/bin/sh可以直接简写为sh

二、Shell变量

1、定义变量时,变量名不加美元符号,使用变量时,变量名前加美元符号
2、变量名定义规范如下

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。
//有效变量名示例
RUNOOB
LD_LIBRARY_PATH
_var
var2

隐式语句赋值变量

for file in `ls /etc`
或
for file in $(ls /etc)

以上语句将 /etc 下目录的文件名循环出来。
3、在使用变量过程中,尽可能给所有变量都加上花括号

your_name="zhty"
echo $your_name	//不推荐
echo ${your_name}	//推荐

4、变量可以被重新定义

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

5、只读变量

#!/bin/bash
myUrl="http://www.google.com"
readonly myUrl
myUrl="http://www.runoob.com"

脚本结果如下:

/bin/sh: myUrl: This variable is read only.

6、删除变量
使用unset命令

unset variable_name

例:

#!/bin/sh
myUrl="http://www.runoob.com"
unset myUrl
echo $myUrl

以上示例没有输出。

三、字符串

1、用单引号和双引号均能定义字符串。
2、单引号不支持变量和转义字符,双引号支持。
3、获取字符串长度

string="abcd"
echo ${#string} #输出 4

4、字符串截断
从第三个字符开始截取4个字符

string="runoob is a great site"
echo ${string:2:4} # 输出 noob

四、Shell脚本常用命令

1、echo 命令用于向窗口输出文本。
2、unset用于删除变量。

你可能感兴趣的:(Shell,Shell)