3.shell脚本知识点学习二
来源:互联网 发布:unity3d导入模型 编辑:程序博客网 时间:2024/05/21 13:57
一.echo命令
echo 指令都是用于字符串的输出。命令格式:
echo "It is a test"
1.1显示换行
echo -e "OK! \n" # -e 开启转义 \n换行echo "It it a test"
1.2.显示不换行
echo -e "OK! \c" # -e 开启转义 \c 不换行echo "It is a test"
1.3显示结果定向至文件
echo "It is a test" > myfile
1.4显示命令执行结果
echo `date`
注意: 这里使用的是反引号 `, 而不是单引号 '。
Thu Jul 24 10:08:46 CST 2014
二.printf 命令
标准所定义,因此使用printf的脚本比使用echo移植性好。
printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。
http://www.runoob.com/linux/linux-shell-printf.html
三.test 命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
3.1数值测试
例:
num1=100num2=100if test $[num1] -eq $[num2]then echo '两个数相等!'else echo '两个数不相等!'fi
3.2字符串测试
例:
num1="ru1noob"num2="runoob"if test $num1 = $num2then echo '两个字符串相等!'else echo '两个字符串不相等!'fi
3.3文件测试
例:
cd /binif test -e ./bashthen echo '文件已存在!'else echo '文件不存在!'fi
Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低
四.shell流程控制
1.if else
if else-if else
if condition1then command1elif condition2 then command2else commandNfi
以下实例判断两个变量是否相等:
a=10b=20if [ $a == $b ]then echo "a 等于 b"elif [ $a -gt $b ]then echo "a 大于 b"elif [ $a -lt $b ]then echo "a 小于 b"else echo "没有符合的条件"fi
2.for 循环
for var in item1 item2 ... itemNdo command1 command2 ... commandNdone
例如,顺序输出当前列表中的数字:
for loop in 1 2 3 4 5do echo "The value is: $loop"done
输出结果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
3.while 语句
while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为:
while conditiondo commanddone
以下是一个基本的while循环,测试条件是:如果int小于等于5,那么条件返回真。int从0开始,每次循环处理时,int加1。运行上述脚本,返回数字1到5,然后终止。
#!/bin/shint=1while(( $int<=5 ))do echo $int let "int++"done
使用中使用了 Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量
无限循环
while :do commanddone
或者
while truedo commanddone
或者
for (( ; ; ))
4.until 循环
until循环执行一系列命令直至条件为真时停止。
until循环与while循环在处理方式上刚好相反。
until condition do command done
5.case
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
echo '输入 1 到 4 之间的数字:'echo '你输入的数字为:'read aNumcase $aNum in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '你没有输入 1 到 4 之间的数字' ;;esac
6.跳出循环
在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。
break命令允许跳出所有循环(终止执行后面的所有循环)。
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
五.shell函数
shell中函数的定义格式如下:
[ function ] funname [()] { action; [return int;]}
说明:
- 1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
- 2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。
demoFun(){ echo "这是我的第一个 shell 函数!"}echo "-----函数开始执行-----"demoFunecho "-----函数执行完毕-----"
函数返回值在调用该函数后通过 $? 来获得。
参数
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...
funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !"}funWithParam 1 2 3 4 5 6 7 8 9 34 73
注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。
六.shell输入输出重定向
需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
1.输出重定向
command1 > file1
上面这个命令执行command1然后将输出的内容存入file1。
注意:任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用>>操作符。
2.输入重定向
command1 < file1
需要从键盘获取输入的命令会转移到文件读取内容。
注意:输出重定向是大于号(>),输入重定向是小于号(<)。
阅读全文
0 0
- 3.shell脚本知识点学习二
- shell脚本学习知识点(二)
- shell脚本学习知识点(一)
- shell脚本学习 二
- shell脚本学习笔记二
- shell脚本学习(二)
- Shell脚本知识点
- shell脚本知识点总结
- shell 脚本知识点
- linux-shell脚本知识点
- Shell脚本知识点
- shell脚本实用知识点
- Shell脚本学习笔记(二)--变量
- Linux shell脚本全面学习(二)
- Linux Shell脚本攻略学习总结:二
- 《Linux Shell脚本攻略》学习(二)
- shell脚本学习(二)-grep
- Shell 脚本基础学习 (二)
- Flink Table API和SQL实践
- iOS-使用AVCaptureSession自定义相机(AVFondation)
- 非负矩阵分解(NMF)论文笔记(1)
- POJ 1454 Factorial Frequencies 笔记
- Eclipse Git下载问题:Internal error; consult Eclipse error log.
- 3.shell脚本知识点学习二
- Andorid学习教程
- 分布式事务的基本概念
- ADO.NET
- vue keep-alive 数据更新问题
- /storage/emulated/0/Pictures中的“0”是什么意思?
- Spring整合Ehcache管理缓存
- Pycharm 远程连接服务器
- 初学者创建与运行Servlet以及Servlet的生命周期