shell中tr命令遇到的小问题记录
2023-09-14 09:15:40 时间
在编写shell解析脚本的时候,用到了tr命令。在使用tr命令的过程中遇到了一个小问题,起初百思不得其解,甚至一度想绕过问题,后来在一点点跟进排查的努力下,终于找到了问题所在。实际上是一处很低级的错误,但很容易犯这个错误。因此把它记录在此。
脚本代码如下:
#!/bin/bash
k="111
222
333
444"
echo "k is: $k"
echo "output1:"
kkk=`echo "$k" | tr -d '\n'`
echo "kkk is: $kkk"
echo "output2:"
kk=`echo $k | tr -d '\n'`
echo "kk is: $kk"
脚本执行结果如下:
$ ./tr_test.sh
k is: 111
222
333
444
output1:
kkk is: 111222333444
output2:
kk is: 111 222 333 444
脚本中tr的作用很简单:去掉字符串kkk中的换行符。把4行内容放在1行。但是一开始用的是output2中的脚本,输出总是有空格,试了很多种方法都无法去掉。一度怀疑是对于tr命令理解得不够透彻,因此加入了output1中的脚本,发现确实是能够正确实现功能的,并没有理解错误。
仔细检查对比两个脚本,最终发现问题所在:功能正确的是kkk=`echo "$k" | tr -d '\n'`,不正确的是kk=`echo $k | tr -d '\n'`。两者差了一个双引号。
以后在做脚本的时候,尤其是字符串相关操作的时候,还是要注意加上双引号,或者多关注这块吧。
相关文章
- Android Java执行Shell命令
- shell脚本--文件查找之find命令
- Linux学习之用户管理命令与用户组管理命令(十五)
- bash shell命令(2)
- linux下解压命令大全
- 使用getopt命令解析shell脚本的命令行选项(转)
- linux 查看外网ip命令curl ifconfig.me
- git命令
- Linux Shell脚本自动化编程实战- shell内置命令 break、continue
- Linux Shell脚本自动化编程实战- shell函数
- Linux进阶04:cheat--命令的栗子
- linux shell 脚本攻略学习13--file命令详解,diff命令详解
- 思科路由器命令信息
- Shell命令替换:将命令的输出结果赋值给变量
- 在python中调用shell命令并传递参数
- 使用python调用shell命令示例代码
- 21.第六章 Shell脚本编程基础入门-- shell 脚本语言的基本用法(四)
- shell中利用sed命令去掉文本中的单引号(‘)
- 反汇编命令
- linux命令之busybox microcom,串口调试命令
- 使用django-extension扩展django的manage――runscript命令
- linux下的find文件查找命令与grep文件内容查找命令
- shell - 02 - Shell的转折点:流程与控制
- elasticsearch交互式命令查询(三)
- 常用的shell命令