# !/bin/bash
# !/bin/tcsh
# !/usr/bin/python3
# !/usr/bin/perl
命令的堆积;
但是很多不命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免运行中产生错误;
(1)赋予执行权限,并直接运行此程序文件;
chmod + x,/路径//SCRIPT_FILE
/路径//SCRIPT_FILE
(2)直接运行解释器,以脚本文件为参数;
bash,/路径//SCRIPT_FILE
(1) #开头的行会被解释器忽略;
(2)空白行会被解释器忽略;
# !/bin/bash #却;能够is my first  shell 脚本 echo “hello, world !"
壳支持自定义变量。
定义变量
定义变量时,变量名不加美元符号(美元),如:
variableName="价值"
同时,变量名的命名须遵循如下规则:
- <李>
首个字符必须为字母(a - z、a - z)。
李> <李>中间不能有空格,可以使用下划线(_).
李> <李>不能使用标点符号。
李> <李>不能使用bash里的关键字(可用帮助命令查看保留关键字)。
李>
变量定义举例:
myUrl=" http://zhaoyongtao.blog.51cto.com/" myNum=100
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:
your_name=敖稹? echo your_name 美元; echo $ {your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
水果=捌还? echo “小姐:like ${水果}s”
如果不给水果变量加花括号,写成回声”我like 美元的果实”,解释器就会把水果当美元成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
重新定义变量
已定义的变量,可以被重新定义,如:
myUrl=" http://zhaoyongtao.blog.51cto.com " echo $ {myUrl} myUrl=" https://blog.51cto.com " echo $ {myUrl}
这样写是合法的,但注意,第二次赋值的时候不能写$ myUrl=" https://blog.51cto.com/",使用变量的时候才加美元符(美元)。
只读变量
使用<强>只读的>强命令可以将变量定义为只读变量,只读变量的值不能被改变。
下面的例子尝试更改只读变量,结果报错:
# !/bin/bash myUrl=" http://zhaoyongtao.blog.51cto.com/" readonly myUrl 以前myUrl=" https://blog.51cto.com/" >
运行脚本,结果如下:
/bin/sh:,名字:,却;能够variable is read 只有。删除变量
使用<强>设置>强命令可以删除变量。语法:
unset variable_name变量被删除后不能再次使用,设置命令不能删除只读变量。
举个例子:# !/bin/sh myUrl=" http://zhaoyongtao.blog.51cto.com/" unset myUrl echo $ myUrl上面的脚本没有任何输出。
变量类型
运行shell时,会同时存在三种变量:
1)局部变量
局部变量在脚本或命令中定义,仅在当前壳实例中有效,其他壳启动的程序不能访问局部变量。
2)环境变量
所有的程序,包括壳体启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3)壳变量
壳变量是由壳程序设置的特殊变量.shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了外壳的正常运行
前面已经说到,变量名只能包含数字,字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。
壳牌从入门到放弃(上)