在shell脚本中使用ls命令的注意事项
来源:互联网 发布:透明罗盘软件下载 编辑:程序博客网 时间:2024/05/16 11:11
请对比如下两个测试:
$ for i in `ls /etc`;do echo $i;doneadjtimeadobeappstream.confarch-releaseasound.confavahibash.bash_logoutbash.bashrcbind.keysbinfmt.d......
$ for i in /etc/*;do echo $i;done/etc/adjtime/etc/adobe/etc/appstream.conf/etc/arch-release/etc/asound.conf/etc/avahi/etc/bash.bash_logout/etc/bash.bashrc/etc/bind.keys/etc/binfmt.d......
像ls这样的命令很多时候是设计给人用的,它的很多显示是有特殊设定的,可能并不是纯文本。
比如可能包含一些格式化字符,也可能包含可以让终端显示出颜色的标记字符等等。
当我们在程序里面使用类似这样的命令的时候要格外小心,说不定什么时候在什么不同环境配置的系统上,
你的程序就会有意想不到的异常出现,到时候排查起来非常麻烦。
所以这里我们应该尽量避免使用ls这样的命令来做类似的行为,用通配符可能更好。
当然,如果你要操作的是多层目录文件的话,那么ls就更不能帮你的忙了,它遇到目录之后显示成这样:
$ ls /etc/*/etc/adobe:mms.cfg/etc/avahi:avahi-autoipd.action avahi-daemon.conf avahi-dnsconfd.action hosts services/etc/binfmt.d:/etc/bluetooth:main.conf/etc/ca-certificates:extracted trust-source
所以遍历一个目录还是要用两个连续的**
,如果不是bash 4.0之后的版本的话,可以使用find。
我推荐用find,因为它更通用。
有时候你会发现,使用find之后,绝大多数原来需要写脚本解决的问题可能都用不着了,一个find命令解决很多问题
阅读全文
0 0
- 在shell脚本中使用ls命令的注意事项
- 在Makefile中使用shell命令的注意事项
- 在Android.mk编译脚本中使用shell bash命令
- shell脚本,在循环体中执行ssh命令的问题
- 在 Shell 脚本中跟踪调试命令的执行
- Linux中Ls命令的使用
- dirname命令介绍-使用dirname在shell脚本中获取当前脚本文件所在的绝对路径
- linux shell脚本中shift命令的使用
- Perl 脚本中使用ls 获取目录名或文件名注意事项
- shell脚本里切换用户执行命令的注意事项
- Shell脚本中cd命令使用
- Shell脚本中cd命令使用
- Shell 脚本中如何使用make命令
- Shell 脚本中如何使用make命令
- BASH命令和SHELL脚本总结(18)使用ACK在指定类型的文件中进行查找
- 在shell脚本中使用ftp telnet
- 在shell脚本中使用sudo
- 8、在Shell脚本中使用函数
- C++学习笔记【第二部分第九章:顺序容器】
- 13种主流机器学习的框架
- 直接插入排序 C++实现
- 欢迎使用CSDN-markdown编辑器
- zabbix报错active check "log[/home/xingcheng/1.txt]" is not supported: Cannot obtain
- 在shell脚本中使用ls命令的注意事项
- Ban-circle Glyph
- python 爬帖子内容
- Zookeeper的安装
- 测试人员怎样用TestFlight测试iOSBeta版本
- vim 插件之winmanager
- 浅谈java注解
- lintcode刷题——矩阵归零
- python字符串替换