shell编程基础
1、shell脚本是纯文本文件,可以使用任何编辑器编写,以.sh作为后缀。
第一行:#! /bin/bash 指定用那个程序来进行解释
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。例如:
#! /bin/bash
echo "hello world!!!"
记得给该文件加上可执行权限。
2、shell中变量:必须以字母或下划线开头,可分为本能变量与环境变量,变量赋值 var=value 其中等号两边不能有空格,若要给变量赋空值,可在等号后接一个换行。
3、export命令是一个内部命令,可以将变量设置为全局变量。 例如export A 将A设为全局变量。
export A=200 == A=200; export A 环境变量能被子进程继承
4、变量的引用:
显示变量的值:echo $var 或者 echo ${echo}
清除变量 unset var
5、显示所有变量:set 显示所有环境变量 env
6、位置参量: 是一组特殊的内置变量,通常被shell脚本用来从命令行接受参数,或被函数用来保存传递给它的参数。执行shell脚本时,用户可以通过命令行向脚本传递信息,跟在脚本名后面的用空格隔开的每个字符串都称为位置参量。在脚本中使用这些参数时,需通过位置参量来引用。例如:$1表示第一个参数 ,$2表示第二个参数,以此类推。$9以后的需要用花括号把数字括起来,如第10个位置参量以 ${10}的方式来访问。
$0表示脚本名称。
$#表示位置参量的个数
$*表示以单字符串显示所有位置参量
$@未加双引号时与$*含义相同,加双引号时有区别
$$脚本运行的当前进程号
$!最后一个后台运行的脚本的进程号
$?显示前面最后一个命令的退出状态。0表示没有错误,其他值表示有错误
1 #! /bin/bash 2 3 IFS=# #影响到"$*" 参数之间的分隔符默认为空格 加上IFS改变分隔符 4 5 echo shell script name is:$0 6 echo the count of parameters:$# 7 echo first param=$1 8 echo second param=$2 9 echo '$*='$* #单引号内容表示原封不动输出282 10 echo '"$*"='"$*" 11 echo '$@='$@ 12 echo '"$@="'"$@" 13 echo '$$='$$
[root@tlinux shell]# ./02.sh "1 2" 3
shell script name is:./02.sh
the count of parameters:2
first param=1 2
second param=3
$*=1 2 3
"$*"=1 2 3 不加IFS
$@=1 2 3
"$@="1 2 3
$$=4844
[root@tlinux shell]# ./02.sh "1 2" 3
shell script name is:./02.sh
the count of parameters:2
first param=1 2
second param=3
$*=1 2 3
"$*"=1 2#3
$@=1 2 3
"$@="1 2 3
$$=4887
7、数组
数组定义:例如 arr=(math english chiness)
引用数组变量 :echo ${arr[0]}
数组个数:${#arr[*]} 3
所有元素:${arr[*]} math english chiness
