第一个Shell脚本程序
1、#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行
2、echo 控制台输出
建立 test.sh测试文件
vi /tmp/test.sh
#!/bin/bashecho \"Hello World\"
保存退出后赋予文件权限
chmod +x test.sh
运行测试
./test.sh
结果在控制台打印
变量定义及使用
shell编程中分为两种变量,第一种是我们自己定义的变量(自定义变量),第二种是Linux已定义的环境变量
#!/bin/bashecho ${PATH}#使用环境变量str=\"good,good\"echo ${str}#自定义变量str,不需要声明变量,直接赋值
将linux命令执行结果赋值给变量
path=`pwd`echo ${path}
预定义变量
$# :命令行参数或位置参数的数量
$? :最近一次执行的命令或shell脚本的出口状态
$* :表示所有的位置参数,其值是所有位置参数的值
$$ : 变量是shell脚本里面的进程ID。Shell脚本经常使用这个变量组织临时文件名,确保文件名的唯一性
测试代码
!/bin/basha=$1 //输入的第一个值b=$2 //输入的第二个值c=$[$1+$2*2]echo c变量$cecho 变量个数$#echo 状态$?echo 命令本身$0echo 所有参数$*echo 进程$$
数值关系运算符
逻辑运算符
字符串运算符
文件运算符
流程控制语句
bash shell脚本中变量无法储存布尔值,布尔值只能用于条件判断
条件中非空都为true
if 语句:
ifthen...fi
if else语句
ifthen...else...fi
if-else-if 语句
ifthen...elifthen...else...fi
示例
#!/bin/bashaaa=123bbb=123if [ $aaa -eq $bbb ]then echo \"nihao\"else echo \"nohao\"fi
for循环
for(( a=1; a<=5;a++))do...done
增强for
for a in param1 param2 param3...doeach $adone
while 循环
a=1while [ a -le 5 ]do...let \"a++\"done
case判断
示例
echo \"请输入1~4内的数字\"read numcase $num in1) echo \"输的1\";;2) echo \"输的1\";;3) echo \"输的3\";;4) echo \"输的4\";;*) echo \"输入不正确\";;esac