Shell|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脚本常用命令 【Shell|Shell脚本学习总结】1、echo 命令用于向窗口输出文本。
2、unset用于删除变量。

    推荐阅读