linux shell脚本攻略总结(一)
2015-09-22 14:22
661 查看
1 终端彩色输出
这段脚本输出红色的字符串“This is red text”;
-e表示转换双引号中的转义字符;
\e[1;31m表示将文本颜色设置为红色,其中1指的是字体,31指的是红色;
表示文本的还有以下颜色:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37。
\e[0m表示还原颜色。
这段代码输出绿色背景的字符串“Green Background”;
表示背景的还有以下颜色:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47。
2 数学运算高级工具bc
可以借助bc执行浮点数运算,并应用一些高级函数。
设定小数精度
进制转换
计算平方&平方根
3 检查一段代所码花费时间
4 输出计数
5 用read读取输入
6 运行命令直至执行成功
用冒号“:”而不用true是因为true一般作为二进制文件来实现,每次执行都会生成一个进程。增加延时sleep 30防止发送数据过于频繁。
7 内部字段分隔符IFS
内部字段分隔符(Internal Field Separator,IFS)是用于特定用途的定界符。IFS变量是存储定界符的环境变量。
8 比较与测试
算数比较
文件系统相关测试
$ echo -e "\e[1;31m This is red text \e[0m"
这段脚本输出红色的字符串“This is red text”;
-e表示转换双引号中的转义字符;
\e[1;31m表示将文本颜色设置为红色,其中1指的是字体,31指的是红色;
表示文本的还有以下颜色:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37。
\e[0m表示还原颜色。
$ echo -e "\e[1;42m Green Background \e[0m"
这段代码输出绿色背景的字符串“Green Background”;
表示背景的还有以下颜色:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47。
2 数学运算高级工具bc
可以借助bc执行浮点数运算,并应用一些高级函数。
$echo "4 * 0.56" | bc 2.24 $ no=54; $result=`echo "$no * 1.5" | bc` $ echo $result 81.0
设定小数精度
$ echo "scale=2;3/8" | bc 0.37
进制转换
$ no=100 $ echo "obase=2;$no" | bc #obase表示输出进制 1100100 $ no=1100100 $ echo "obase=10;ibase=2;$no" | bc #ibase表示输入进制 100
计算平方&平方根
$ echo "sqrt(100)" | bc $ echo "10^10" | bc
3 检查一段代所码花费时间
#!/bin/bash #文件名:time_taken.sh start=$(date +%s) #command; #statements; end=$(date +%s) difference=$(( end - start )) echo Time taken to execute commands is $difference seconds.
4 输出计数
#!/bin/bash #文件名:sleep.sh echi=o -n Count: tput sc #存储光标位置 count=0; while true; do if [ $count -lt 40 ]; then let count++; sleep 1; tput rc #恢复光标位置 tput ed #清楚当前光标位置到行尾之间的所有内容 echo -n $count; else exit 0; fi done
5 用read读取输入
$ read -n 2 var #读取2个字符存入var中 $ read -s var #无回显方式输入 $ read -p "Please enter input:" var #提示信息 $ read -t 2 var #在2秒内将键入的字符读入变量var $ read -d ":" var #以冒号“:”作为结束
6 运行命令直至执行成功
repeat() { while :; do $@ && return; sleep 30; done }
用冒号“:”而不用true是因为true一般作为二进制文件来实现,每次执行都会生成一个进程。增加延时sleep 30防止发送数据过于频繁。
7 内部字段分隔符IFS
内部字段分隔符(Internal Field Separator,IFS)是用于特定用途的定界符。IFS变量是存储定界符的环境变量。
#!/bin/bash data="1,2,3,4" oldIFS=$IFS IFS=, for item in $data; do echo Item: $item done IFS=$oldIFS
8 比较与测试
算数比较
-eq 相等 -ne 不相等 -gt 大于 -lt 小于 -ge 大于或等于 -le 小于或等于
文件系统相关测试
-f 正常文件路径或文件名,则返回真 -d 目录,则返回真 -e 文件存在,则返回真 -c 字符设备文件,则返回真 -b 块设备文件,则返回真 -x 文件可执行,则返回真 -w 文件可写,则返回真 -r 文件可读,则返回真 -L 符号链接,则返回真
相关文章推荐
- 高级Bash脚本编程指南
- [9-13]Shell系列6――取算数运算数值
- linux下shell编程基础
- shell 冒泡排序 数组的使用
- Linux Shell脚本实现根据进程名杀死进程
- /bin/bash^M: bad interpreter: 没有那个文件或目录
- linux shell 管道命令(pipe)使用及与shell重定向区别
- Firefox OS启动过程分析-Shell入口
- Linux Shell 命令 简介
- Shell编程
- 9-13 shell工作原理和编程中知识点总结
- Shell 工作原理
- Linux Shell 文本处理工具集锦
- 2015年9月13日和15日【shell、sed&awk 的使用(一)】-JY1506402-19+liuhui880818
- bash编程之:函数与数组
- ShellExecute
- Linuxshell脚本之if条件判断
- [9-13]Shell系列5――条件测试和运算符
- 使用shell统计字符串出现的次数,并从大到小进行排序显示
- Linux下QT中执行shell命令