Questions tagged «echo»

有关内置的​​shell或`/ bin / echo`的问题。如果您的问题只是关于打印到终端上,则不应使用此标签,仅当您的问题特定于`echo`命令时才应使用该标签。

4
为什么printf比echo好?
我听说printf比更好echo。从我的经验中,我只能回忆起一个必须使用的实例,printf因为它echo无法将某些文本输入RHEL 5.8上的某个程序,但是可以printf。但是显然还有其他差异,我想询问一下它们是什么,以及是否存在特定情况下何时使用一种对另一种。


3
为什么“回声”比“触摸”这么快?
我正在尝试(递归地)将目录中所有xml文件的时间戳更新为当前时间。我正在使用Mac OSX 10.8.5。 在大约300,000个文件上,以下echo命令耗时10秒: for file in `find . -name "*.xml"`; do echo >> $file; done 但是,以下touch命令需要10分钟!: for file in `find . -name "*.xml"`; do touch $file; done 为什么回声比触摸此处要快得多?
116 shell  command  echo 

6
如何回响一声巨响!
我试图echo通过将内容放入文件而不是使用编辑器打开脚本来创建脚本 echo -e "#!/bin/bash \n /usr/bin/command args" > .scripts/command 的输出: bash:!/ bin / bash:找不到事件 我已经分离出这种奇怪的行为的爆炸。 $ echo ! ! $ echo "!" bash: !: event not found $ echo \#! #! $ echo \#!/bin/bash bash: !/bin/bash: event not found 为什么爆炸会引起这种情况? bash指的这些“事件”是什么? 如何解决此问题,然后在屏幕或文件中打印“#!/ bin / bash”?

8
如何删除回声行?
我知道我可以使用以下命令删除最后三个字符: echo -ne '\b\b\b' 但是,如何删除整行?我的意思是我不想使用: echo -ne '\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b' ... etc ...删除长行。

3
什么定义了命令单个参数的最大大小?
我的印象是,这里单个参数的最大长度不是问题,而是整个参数数组的总大小加上环境的大小(最大为)ARG_MAX。因此,我认为类似以下内容的方法将会成功: env_size=$(cat /proc/$$/environ | wc -c) (( arg_size = $(getconf ARG_MAX) - $env_size - 100 )) /bin/echo $(tr -dc [:alnum:] </dev/urandom | head -c $arg_size) >/dev/null 这样- 100就足以解决shell中环境大小与echo进程之间的差异。相反,我得到了错误: bash: /bin/echo: Argument list too long 玩了一段时间后,我发现最大值比整数小了一个十六进制数量级: /bin/echo \ $(tr -dc [:alnum:] </dev/urandom | head -c $(($(getconf ARG_MAX)/16-1))) \ >/dev/null 减一时,错误返回。似乎单个参数的最大值实际上是,ARG_MAX/16并且将-1空字节放在参数数组中字符串的末尾。 另一个问题是,当重复参数时,参数数组的总大小可能更接近ARG_MAX,但仍然不够大: …
47 kernel  echo  arguments 

4
将字节回显到文件
我正在尝试使用i2c总线将rasberry Pi连接到某些显示器。首先,我想手动写入内容,尤其是字节到文件中。 如何将特定字节写入文件? 我已经读过一篇文章,并且我认为我的问题应该通过这样的方法解决 echo -n -e \x66\x6f\x6f > byteFileForNow 但是,当我使用nano而不是foo打开该文件时,我看到: x66x6fx6f 因此,反斜杠被转义,但字节本身未转义。这次我也只在没有-e的情况下尝试了相同的操作,因此我希望可以看到\ x66 \ x6f \ x6f,但是与以前一样。 因此,echo转义了反斜杠,单独的反斜杠和反斜杠,无论是否应该这样做。 任何想法如何解决这个问题? 根据手册页,应该已经完成​​了我想要的工作。

6
使用echo时如何添加新行
为什么以下命令没有在生成的文件中插入换行符,该怎么办? $ echo "Line 1\r\nLine2" >> readme.txt $ cat readme.txt Line 1\r\nLine2
42 stdout  echo 

5
将文件的内容重定向到命令“ echo”
我有一个名为my_file.txt的文件,其内容只是字符串Hello。如何将其内容重定向到命令echo? 我知道我有命令less,cat,more...但我需要做它用echo。 我尝试了这个: $ cat my_file.txt | echo 还有这个: $ echo < my_file.txt 但是在两种情况下,它在标准输出中仅显示为空白,而my_file.txt的内容中则没有。 我该怎么办?

6
“ cat”是内置的shell还是外部程序?
当我使用type命令查找cat是内置的Shell还是外部程序时,我得到以下输出: -$ type cat cat is hashed (/bin/cat) -$ 这是否意味着cat是一个外部程序/bin/cat? 我很困惑,因为当我检查下面的输出时,echo我发现它既是built-in程序又是程序/bin/echo -$ type echo echo is a shell builtin -$ which echo /bin/echo -$ 因此,我无法使用/bin/cat必然意味着外部程序的逻辑,因为echo是/bin/echo但仍是内置的。 那么我怎么知道是什么cat呢?内置还是外部?
33 bash  cat  echo  shell-builtin 



1
为什么echo> file比echo使用更多实时时间| sed>文件?
下面的例子令我惊讶。这似乎是反直观的……除了事实之外,该组合还有更多的用户时间echo | sed。 为什么单独运行时会花费echo那么多系统时间,或者问题应该是,如何sed改变游戏状态?似乎在两种情况下echo都需要执行相同的回显 ... time echo -n a\ {1..1000000}\ c$'\n' >file # real 0m9.481s # user 0m5.304s # sys 0m4.172s time echo -n a\ {1..1000000}\ c$'\n' |sed s/^\ // >file # real 0m5.955s # user 0m5.488s # sys 0m1.580s
28 bash  shell  pipe  time  echo 

4
使用回显打印彩色文本
我知道使用回声(例如红色)打印彩色文本的代码是:echo -e "\e[1;31m This is red text \e[0m" 并且我知道在此示例中,31是红色代码,其他颜色的数量是: Black 0;30 Dark Gray 1;30 Blue 0;34 Light Blue 1;34 Green 0;32 Light Green 1;32 Cyan 0;36 Light Cyan 1;36 Red 0;31 Light Red 1;31 Purple 0;35 Light Purple 1;35 Brown 0;33 Yellow 1;33 Light Gray 0;37 White 1;37 对于背景色,数字是40到47 我的问题是:\e和[和m(31岁以后)在这里到底是什么意思?我在手册页中读到\ …

5
为什么回声会忽略我的引号字符?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 8年前。 该echo命令未包含我提供的完整文本。例如,如果我这样做: $ echo ' echo PARAM=` grep $ARG /var/tmp/setfile | awk '{print $2}' ` ' 它输出: echo PARAM=` grep $ARG /var/tmp/setfile | awk {print } ` '我的echo命令中的单引号()不包括在内。如果我改用双引号: $ echo " echo PARAM=` grep $ARG /var/tmp/setfile | awk '{print $2}' ` " echo根本不输出任何东西!为什么在第一个示例中省略单引号而在第二个示例中不输出任何内容?如何获得与输入内容完全相同的输出?
24 shell  quoting  echo 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.