shell脚本和流程控制
来源:互联网 发布:淘宝做食品要什么条件 编辑:程序博客网 时间:2024/05/23 22:17
输出
echo
注释以#开头,但唯独第一行不是注释,他代表当前shell的类型,下面写一个小例子
#!/bin/bash#直接写命令#输出当前时间date#输出当前用户信息who#创建变量,变量和等号之间不能有空格,当字符串之间没有空格时可以直接赋值,有空格的要加双引号str1=istr="$str1 love you"#命令的结果作为变量值,一种是反引号中间写命令,一种是$(),括号中间写命令text1=`date`text2=$(who)#输出当前变量值,echo $加变量名echo $text1#如果输出特殊字符,需要用\转义
grep命令查找
bash在当前脚本出现的位置,-n表示当前行数
#输出为#!/bin/bash
grep bash linux.sh
grep -n bash linux.sh
#输出为1:#!/bin/bash
命令执行推出的状态
- 0成功
- 127 没有找到命令
- 1 位置错误
- 126 命令不可执行
if else语句
格式
只有if命令的退出状态码为0才会执行then部分
if 命令
then
命令
fi
例子
tesure=lady
#查找passwd里面是否有对应的目录
if grep $tesure /etc/passwd
then
echo “ok”
#如果passwd没有这个目录,在判断是否有这个目录
elif ls -d /home/¥tesure
then
echo ”用户不存在,但主目录仍然存在“
#其他情况
else
#可以继续嵌套if
echo “not exit”
fi
test 命令,如果条件成立,test命令以状态0退出,if条件成立,不成立以非0退出
test 条件
test命令的简写为[ 条件 ]注意条件与中括号之间的空格
#!/bin/bash
if [ 10 -eq 10]
then
echo “相等”
else
echo “不相等”
fi
test数值的比较
- -gt大于
- -eq等于
- -le小于
- -ne不等于
test字符串的比较
- str1==str2等于
- str1!=str2不等于
- str1< str2小于 比较的是阿斯克码
- -n str1长度是否非0
- -z str1长度是否为0
test文件比较
- -d检查是否存在并且是一个目录
- -e检查file是否存在
- -f检查是否存在并且是一个文件
- -r检查是否存在,并且可读,类似还有-w,-x
- file1 -nt file2 file1比file2新
- file -ot file2 file1比file2旧
#!/bin/bash
mydirr=/usr/linux
#-d检查目录是否存在
if[ -d $mydir ]
then
echo”存在”
ls
else
echo“不存在”
fi
多个条件的是时候
if[ ]&&[ ]
…
如何使用任意数学赋值或者比较表达式++,–,=,>,<,==,||等符号,用双括号包围表达式
if(( a++ >90 ))
。。。
case 语句
格式,注意双引号
case 命令
case 变量 in
patt1) 命令;;
pqtt2) 命令;;
*) 默认命令;;
esac
例子
#!/bin/bash
tes=good
case $tes in
good)
echo “hi”;;
*)
echo “jjj”;;
esac
for循环
格式
for 命令
for var in list
do
命令
done
例子
#!/bin/bash
for item in 1 2 3 4 5
do
echo $item
done
#输出为1 2 3 4 5
例子
list=“win–hhh–sfsf-fsdf”
字段分隔符IFS
IFS=$- -
for item in $list
doecho $item
done
#输出为win hhh sfsf fsdf
while 循环
格式
while test命令或者【】
do
命令
done
例子
#!/bin/bash
a=10
while [ $a -gt 0 ]
do
echo “1”
赋值不用使用美元符号a=[ $a-1]
done
- shell脚本和流程控制
- shell脚本流程控制
- Shell脚本结构流程控制
- Shell脚本(2)之条件测试和流程控制
- Shell脚本学习笔记(四)--流程控制
- Linux基本功十二:shell脚本流程控制
- shell脚本之流程控制(七)
- shell脚本的学习3-流程控制
- shell 命令和流程控制
- Shell命令和流程控制
- Shell常用命令和流程控制
- shell测试和流程控制
- shell脚本之-if流程控制语句和for循环语句的使用
- [shell]Shell流程控制
- shell 脚本之程序流程控制命令(1)
- linux脚本编写基础(环境变量、shell流程控制)
- 几类脚本的流程控制语句(shell,python,lua)
- shell脚本——流程控制的操作使用
- source、sh、bash、./执行脚本的区别
- Kafka 0.11.0.0 producer&consumer java API实例
- 如何在Linux中进行C语言多文件编译
- CPU管理
- 1.1关键字
- shell脚本和流程控制
- 业精于勤荒于嬉(一)
- Java简单选择排序
- Go的变量到底在堆还是栈中分配
- 腾讯、阿里和百度的12大隐藏良心级实用功能(24K纯干货!)
- 【云隐课堂】【软件安装】基于Eclipse的ESP8266的工程软件编译开发环境(ESP-IDE)【windows】
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.a
- log4net使用总结
- mono中文注释乱码