01 - Shell编程基础命令
02 - Shell编程小抄
03 - Shell编程技巧
04 - Shell编程陷阱
05 - Shell编程正则表达式
06 - Shell的参考手册
- Bash参考手册:https://tiswww.case.edu/php/chet/bash/bashref.html
- Bash快速参考表:https://github.com/LeCoupa/awesome-cheatsheets/blob/master/languages/bash.sh
- 了解Shell(简明教程,提供在线运行环境):http://www.learnshell.org/
07 - 删除文本文件或字符串中的“\r”字符
1-问题现象
解析文本文件最后一列内容,然后赋值给变量,发现变量值的内容发生改变,值的结尾多了“\r”字符。
例如,本应为test=123456789,实际得到test=$'123456789\r'。
2-问题原因
与文本文件格式有关,Unix体系里,每行结尾只有“<换行>”,即“\n”;Windows体系里面,每行结尾是“<换行><回车>”,即“\n\r”。
在Unix下,利用“cat -A <filename>”命令查看所有字符,“\n”实际显示为“$”,“\n\r”实际显示为“^M$”
在Windows下,利用notepad++编辑器查看所有字符,“\n”实际显示为“LF”,“\n\r”实际显示为“CRLF”
3-处理方法
- 方法1:利用“dos2unix”命令对文本文件进行格式转换
- 方法2:利用`tr -d ‘\r’`命令删除字符串中的“\r”字符
08 - 逐行读取文件的方法
方法1:
cat $fileName | while read line
do
[statements]
done
方法2:
for line in `cat $fileName`
do
[statements]
done
方法3:
while read line
do
[statements]
done < $fileName
参考:逐行读取的方法
09 - 写好shell脚本的13个技巧
- 提供--help标记
- 检查所有命令的可用性
- 独立于当前工作目录
- 如何读取输入:环境变量 vs. 标记
- 打印对系统执行的所有操作
- 如果有必要,提供--silent选项
- 重新开启显示
- 用动画的方式显示进度
- 用颜色编码输出
- 出现错误立即退出脚本
- 自己执行清理工作
- 在退出时使用不同的错误码
- 在结束时打印一个新行