shell 脚本-变量
第一个shell脚本
#!/bin/bash
echo "Hello World !"
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
运行 shell 脚本
- 可执行程序
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh
- 作为解释器参数
使用解释器来运行脚本
sh test.sh
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
声明变量
变量声明规则
- 变量名和等号之间不能有空格
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 不能使用 bash 里的关键字
# 声明变量
my_name="eno"
# 修改变量
my_name="zeng"
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可
my_name="eno"
echo $your_name
echo ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
for skill in Ada Coffe Action Java; do
echo "I am good at ${skill}Script"
done
如果不给skill变量加花括号,写成echo "I am good at s k i l l S c r i p t " , 解 释 器 就 会 把 skillScript",解释器就会把 skillScript",解释器就会把skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
推荐给所有变量加上花括号,这是个好的编程习惯。
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变
my_name="eno"
readonly my_name
删除变量
使用 unset
命令可以删除变量
unset my_name