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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄