标签: echo

'cat' 是内置的 shell 还是外部程序?

当我使用该type命令来确定cat是 shell 内置程序还是外部程序时,我得到以下输出:

-$ type cat
cat is hashed (/bin/cat)
-$
Run Code Online (Sandbox Code Playgroud)

这是否意味着这cat是一个外部程序/bin/cat

我很困惑,因为当我检查下面的输出时,echo我看到它既是built-in一个程序,又是一个程序/bin/echo

-$ type echo
echo is a shell builtin
-$ which echo
/bin/echo
-$ 
Run Code Online (Sandbox Code Playgroud)

所以我不能使用/bin/cat必然意味着外部程序的逻辑,因为 echo/bin/echo仍然是内置的。

那我怎么知道是什么cat?内置还是外置?

bash echo cat shell-builtin

33
推荐指数
2
解决办法
9561
查看次数

使用 cat 或 echo 将相同的文本附加到多个文件?

如何使用catecho仅使用一个命令将相同的内容写入多个文本文件?

例如,我想将“hello”写入 file1 和 file2。我试过:

echo "hello" >> file1 file2
Run Code Online (Sandbox Code Playgroud)

但它没有用。我该怎么做?

io-redirection echo cat

30
推荐指数
1
解决办法
3万
查看次数

为什么 echo >file 比 echo 使用更实时?sed > 文件?

下面的例子让我感到惊讶。这似乎是直觉......除了一个事实,即有一根胡须更有用户时间echo | sed组合。

为什么在单独运行时echo使用这么多sys 时间,或者问题应该是,如何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
Run Code Online (Sandbox Code Playgroud)

shell bash pipe echo time

29
推荐指数
1
解决办法
1933
查看次数

在没有换行的情况下用 echo 附加文本

我想将文本附加到文件中,例如echo "abc" >>file.txt.

但这abc在新行之后添加

如何abc在没有换行的情况下使用 echo 在文件末尾添加?

shell io-redirection echo text-processing

29
推荐指数
5
解决办法
6万
查看次数

echo `date`、echo "`date`" 和 echo '`date`' 之间有什么区别?

这三个命令有什么区别?

echo `date`
echo "`date`"
echo '`date`'
Run Code Online (Sandbox Code Playgroud)

我对实际的差异感到困惑。我认为当 ' 在它周围时意味着它是一个字符串,因此 echo 会从字面上输出字符串date而不是显示日期?

shell echo quoting

27
推荐指数
2
解决办法
13万
查看次数

为什么 echo 会忽略我的引号字符?

echo命令不包括我提供的完整文本。例如,如果我这样做:

   $ echo ' echo PARAM=`  grep  $ARG  /var/tmp/setfile  | awk '{print $2}' `    '
Run Code Online (Sandbox Code Playgroud)

它输出:

echo PARAM=`  grep  $ARG  /var/tmp/setfile  | awk {print } `
Run Code Online (Sandbox Code Playgroud)

'我的 echo 命令中的单引号 ( ) 不包括在内。如果我切换到双引号:

$ echo " echo PARAM=`  grep  $ARG  /var/tmp/setfile  | awk '{print $2}' `  "
Run Code Online (Sandbox Code Playgroud)

echo根本不输出任何东西!为什么在第一个示例中省略了单引号而在第二个示例中不输出任何内容?如何让它准确输出我输入的内容?

shell echo quoting

26
推荐指数
3
解决办法
12万
查看次数

将消息通过管道传送到 sendmail 的格式是什么?

我正在使用以下命令即时创建消息并发送它们:

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com
Run Code Online (Sandbox Code Playgroud)

似乎当您从文件发送信息时,通过执行以下操作:

sendmail email@example.com mail.txt 
Run Code Online (Sandbox Code Playgroud)

然后,sendmail 将每一行视为一个标题,并对其进行解析。但是按照我上面发送的方式,所有内容都以主题行结尾。

如果想要将带有标题的完整消息回显到 sendmail 中,那么格式是什么?怎么做?

shell email sendmail echo

26
推荐指数
1
解决办法
4万
查看次数

使用 echo 打印彩色文本

我知道使用回声打印彩色文本,例如红色,代码是: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
Run Code Online (Sandbox Code Playgroud)

对于背景颜色,数字是 40 到 47

我的问题是:\eand[m(after 31) 在这里到底是什么意思?
我在手册页中读到 \e 是转义,但我不明白这是什么意思。

scripting shell-script echo

25
推荐指数
3
解决办法
8万
查看次数

不同 shell 中带有“echo -e”的转义序列

我只是注意到在 Linux 上的 shell 中-e似乎不存在该echo命令的标志。这只是一个混乱的设置还是“正常”?

一些代码为例:

#!/bin/sh
echo -e "\e[3;12r\e[3H"
Run Code Online (Sandbox Code Playgroud)

印刷:

-e \e[3;12r\e[3H
Run Code Online (Sandbox Code Playgroud)

这以前有效!我猜有些stty命令出错了,现在它不再起作用了。有人建议我sh实际上只是bash.

shell echo escape-characters

25
推荐指数
2
解决办法
9万
查看次数

为什么“echo --help”没有给我回声的帮助页面?

我在 Bash 中尝试了 'man echo',它告诉我 'echo --help' 将显示帮助然后退出,同样,'echo --version' 将输出版本并退出。但为什么它不起作用?'echo --help' 只是简单地按字面打印 '--help'。

shell bash echo

24
推荐指数
3
解决办法
1万
查看次数