一、第一个Shell脚本
用 vi/vim 命令创建文件 test.sh,扩展名为 sh,如果用 php 写 shell 脚本,扩展名为 php。扩展名不影响脚本运行。
#!/bin/bash
echo "Hello world!"
#!
告诉系统脚本用什么解释器来执行。即使用哪一种 Shell。
echo
用于向窗口输出文本。
1. 运行Shell
1. 作为可执行程序
chmod +x ./test.sh
./test.sh # 执行脚本
注意: ./
,表示在当前目录查找。直接写 test.sh,linux 系统会去 PATH 里寻找 test.sh,而只有 /bin,/sbin,/usr/bin,/usr/sbin 等在 PATH 里。
2. 作为解释器参数
sh tesh.sh
php test.php
这种方式,直接运行解释器,参数是 shell 脚本文件名。
二、Shell变量
定义变量,不加$(PHP语言需要)。
your_name="wangke"
除了显示地直接赋值,还可以用语句给变量赋值。
file=for file `ls /usr` # 反引号
或
file=for file $(ls /usr)
上面语句将 /etc 下目录的文件名循环出来。
1. 使用变量
在变量名前加 $ 。
your_name='wangke'
echo $your_name
echo ${your_name}
加 {} 为了识别变量的边界,推荐所有变量都加 {}。
2. 只读变量
readonly
定义只读变量。只读变量的值不能被改变。
#!/bin/bash
your_name='wangke'
readonly yuor_name
your_name='qinlu'
运行结果:
/bin/sh: NAME: This variable is read only.
3. 删除变量
unset
删除变量。
unset your_name
变量删除不能再次使用。unset命令不能删除只读变量。
#!/bin/bash
my_name='wangke'
unset my_name
echo $my_name
执行后没有任何输出。
4. 变量类型
- 局部变量:在脚本或命令中定义,仅当前 shell 中有效,其他 shell 不能访问。
- 环境变量:所有程序,包括 shell 启动的程序,都能访问环境变量。必要的时候 shell 脚本也可为环境变量。
- shell变量:由 shell 程序设置的特殊变量。保证 shell 程序正常运行。shell 变量中一部分是环境变量,一部分是局部变量。