Shell脚本程序入门
一、第一个Shell脚本程序
1、通过命令创建脚本文件test.sh
#!/bin/bash
echo “Hello World!”
2、执行脚本
chmod +x ./test.sh #使脚本具有执行权限
./test.sh
作为解释器参数执行
/bin/sh test.sh
二、变量
1、定义变量
TMP=”Hello World!” #一般大写,=两边不能有空格
echo $TMP
echo ${TMP} #使用时为$变量名或${变量名}
2、只读变量
#!/bin/bash
TMP=”HELLO WORLD”
readonly TMP
TMP=”HELLO” #this variable is read only
3、删除变量
#!/bin/bash
TMP=”HELLO WORLD”
echo $TMP
unset TMP
echo $TMP #无输出
三、字符串
1、 字符串定义
TMP1=’hello world’
TMP2=”HELLO WORLD”
单引号:单引号中不能使用变量和不能出现单引号(转义无效)
双引号:双引号可以有变量,可有有转义符
2、 字符串处理
拼接字符串
TMP1=”H”
TMP2=”A,${TMP1}”
echo $TMP2
字符串长度
TMP=”abcdefg”
echo ${#TMP}
提取字符串
TMP=”abcdefg”
echo ${TMP:1:2}
四、数组
bash支持一维数组,并且没有限定数组的大小
1、定义数组
使用括号表示数组,数组元素使用空格符号分隔:数组名=(v1 v2 v3 v4)
arr=(1 2 3 4 5)
2、使用数组
读取数组元素:${数组名[下标]}
v=${arr[0]}
数组长度
len=${#arr[@]}
五、Shell脚本参数传递
执行脚本时可以向脚本传递参数,在脚本内获取参数的格式为:$n,n是一个数字1,2,3……
#!/bin/bash
echo "文件名:$0"
echo "第一个参数$1"
echo "第二个参数:$2"
echo "第三个参数:$3"
特殊参数
$# 在脚本中可以获取传递的参数个数、
$0 执行的脚本名称
$* 将传递的所有参数作为一个字符串
$@ 将传递的参数作为一个单独的字符串
进程相关的参数
$? 上一条命令执行后的返回值
$$ 当前进程的进程号
$! 运行在后台的最后一个作业的PID
$_ 在此之前执行的命令或脚本的最后一个参数