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