Shell - Tips
01 - 05
01 - Shell编程基础命令
02 - Shell编程小抄
03 - Shell编程技巧
04 - Shell编程陷阱
05 - Shell编程正则表达式
06 - 10
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选项
- 重新开启显示
- 用动画的方式显示进度
- 用颜色编码输出
- 出现错误立即退出脚本
- 自己执行清理工作
- 在退出时使用不同的错误码
- 在结束时打印一个新行
10 - Shell练习
11 - 15
11 - Shell思维导图
12 - 命令行的艺术(the-art-of-command-line)
- 简体中文:https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md
- English:https://github.com/jlevy/the-art-of-command-line/blob/master/README.md
13 - Linux 命令行 Bash 的基本用法和脚本编程
14 - 临时文件
- Bash 脚本如何创建临时文件:http://www.ruanyifeng.com/blog/2019/12/mktemp.html
15 - 命令行通配符
16 - 20
16 - Shell 简明开发规范
17 - expect语句报错“spawn id exp6 not open”
理解“exp_continue”的作用
将如下语句
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASSWORD\n";exp_continue }
"Password" { send "$PASSWORD\n" }
}
修改为
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASSWORD\n" }
"Password" { send "$PASSWORD\n" }
}
参考信息
- expect安装及使用 https://www.cnblogs.com/52py/p/14172191.html
- linux expect 用法 https://www.cnblogs.com/saneri/p/10819348.html
18 -
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。