shell脚本数组变量 shell脚本基本命令
一shell介绍
shell是一段应用程序,是用户和操作系统交互的一个桥梁
shell是弱类型语言,在定义变量时不需要指定变量的类型
二变量
变量名=变量值
变量名不能以数字开头,字母数字、下划线组成
输出变量内容 echo $变量名
释放变量 unset 变量名
双引号:如果变量值中存在$变量名,则输出变量名对应的变量值,在$变量前加转义符\,则可原样输出
单引号:如果变量值中存在$变量名卡盟,则原样输出
#输出当前所在目录
vi script1.sh
#!/bin/bash
dir='pwd'
echo $dir
#添加执行权限
chmod +x
统计某目录下有多少文件
vi script.sh
#!/bin/bash
cd /etc
filename=ls -l|wc -l
echo "该目录下有$filename个文件"
:wq
sh script.sh
三readshell脚本数组变量,echo,数组的使用
①read a b
helloword girl boy
则 a=helloword,b=girl boy
复制 cp script.sh script1.sh
输入:read 变量名
read -p '输入提示的信息' 变量名
②echo 命令用于向窗口输出文本。
#!/bin/bash
echo "这是数据是$1" #第一个参数
echo "这是数据是$0" #文件名称
echo "这是数据是$4" #第4个参数
echo "这是数据是$@" #显示全部参数
echo "这是数据是$#" #显示参数的个数
sh script4.sh 100 200 300 400
echo 这是数据是100
echo 这是数据是 script4.sh #指向该脚本的名称
echo 这是数据是400
多行注释:
:a.txt 覆盖内容 ls 1>>a.txt 追加内容
cat a.txt
错误命令 ls 2>a.txt 覆盖内容 ls 2>>a.txt 追加内容
五程序的结构
if..else分支
if...elif...else分支
case分支
逻辑运算符:-a -o !
数字比较运算符: -eq/-ne/-gt/-ge/-lt/-le
字符串比较:== !=
文件状态测试:test 参数 变量名
文件判断:-参数 变量名
①if --else
1条件两边要有空格 2多个条件间要有空格 3if后面要有空格 4条件中如果存在变量,那么变量两边要有双引号,以fi结尾
1. 练习:判断 /root目录是否为空
涉及知识点:字符串间的判断: ==字符串是否相等,!=是否不相等
script1.sh
#!/bin.bash
dir =’ls /root’
if [ “$dir”==” ” ] #if [ “$dir”==” ” ]:then
then
echo “目录为空”
else
echo “目录不为空”
fi
read -p "请输入目录:" dir
d='ls $dir'
if [ “$dir”==” ” ] #if [ “$dir”==” ” ]:then
then
echo “目录为空”
else
echo “目录不为空”
fi
②逻辑运算符
运算符 说明 举例
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。