只是好奇,这是ls正常预期的行为:
user@host:~$ ls Codes Documents Music Pictures Templates Desktop Downloads Papers Public Videos
但是当我用pipe道/redirectls时,它的行为就像ls -1 :
user@host:~$ ls | cat Codes Desktop Documents Downloads Music Papers Pictures Public Templates Videos
为什么? (以及如何编写这样的程序,这样的标准输出和pipe道之间的差异输出?)
PS我也设置alias l='ls -F' ,这次pipe道/redirect不再是ls -1样式:
什么是./lks.sh:运行shell脚本时,Linux中的权限被拒绝?
在命令不执行
for循环在bash中获取多个variables在一个命令中使用它
bash(可能会使用perl / python):通过正则expression式过滤空格分隔的arg列表
尾倒/打印除最后n行之外的所有内容?
user@host:~$ l | cat Codes/ Documents/ Music/ Pictures/ Templates/ Desktop/ Downloads/ Papers/ Public/ Videos/
不使用别名,它以ls -1样式执行命令,但是:
$ ls -F | cat Codes/ Desktop/ Documents/ Downloads/ Music/ Papers/ Pictures/ Public/ Templates/ Videos/
从另一个string的值中创build一个stringvariables名称
计划在Windows中运行bash shell脚本
查找和ls的通配符
有没有办法使用variables来获取指定的参数?
你可以从源头检查这一行:
if (format == long_format) format = (isatty (STDOUT_FILENO) ? many_per_line : one_per_line);
它使用isatty函数检查stdout指向一个tty,如果是则打印many_per_line否则打印many_per_line 。
下面是GNU ls如何做( ls.c ):
if (isatty (STDOUT_FILENO)) { format = many_per_line; } else { format = one_per_line; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。