#!/bin/bash
echo “Hello World !”
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
echo 命令用于向窗口输出文本。
运行 Shell 脚本有两种方法
1、作为可执行程序
将上面的代码保存为 test.sh,并 cd 到相应目录:
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
2、作为解释器参数
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
/bin/sh test.sh /bin/php test.php
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
删除变量
使用 unset 命令可以删除变量.unset不能删除只读变量
引号
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
双引号的优点:
提取子字符串
string=”runoob is a great site” echo ${string:1:4} # 输出 unoo
第一个字符的索引值为 0。
查找子字符串
查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string=”runoob is a great site” echo
expr index "$string" io
# 输出 4
注意: 以上脚本中 ` 是反引号,而不是单引号 ‘,不要看错了哦。
定义数组
在 Shell 中,用括号来表示数组,数组元素用”空格”符号分割开。定义数组的一般形式为:
array_name=(value0 value1 value2 value3)
array_name[n]=valuen
读取数组
读取数组元素值的一般格式是:
${数组名[下标]}
valuen=${array_name[n]}
获取数组的长度
取得数组元素的个数
length=${#array_name[@]}
# 或者 length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
Shell 传递参数
向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
其中 $0 为执行的文件名(包含文件路径)
$* 与 $@ 区别:
- 相同点:都是引用所有参数。
- 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 “ * “ 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)。