命令结果的特殊变化

时间:2019-05-07 21:00:14

标签: bash

有些命令在键入窗口时与存储在文件中并以“。”运行时导致bash结果不同。运算符。

例如,“ commands3.txt”中的3行

date  > 1.killme ; sleep  5  ; date  >> 1.killme
date  > 2.killme ; sleep  5  ; date  >> 2.killme
date  > 3.killme ; sleep  5  ; date  >> 3.killme

在bash shell中输入第一行,生成的“ 1.killme”文件包含两行并带有两个时间戳。但是:

. commands3.txt

每行只有一个时间戳(第二行将覆盖第一行)。

将文件更改为此:

date  > 1.killme ; echo 1; sleep  5  ; date  >>1.killme; echo 2
date  > 2.killme ; echo 1; sleep  5  ; date  >>2.killme; echo 2
date  > 3.killme ; echo 1; sleep  5  ; date  >>3.killme; echo 2

,然后再次执行点文件方法,这一次每个文件将同时具有两个时间戳。更改为此:

date  > 1.killme ; sleep  5  ; date  >>1.killme;
date  > 2.killme ; sleep  5  ; date  >>2.killme;
date  > 3.killme ; sleep  5  ; date  >>3.killme;

然后做

. commands3.txt

文件将再次包含两个时间戳,但以在每行上发出“:command not found ...”为代价。

如果这是应有的方式,请有人解释为什么bash会这样做吗?

Centos 7上的bash 4.2.46,日期8.22

谢谢

编辑:正如答案所说,commands3.txt文件中嵌入了\ r。显然,剪切/粘贴到xterm中会以某种方式静默删除这些内容。

谢谢。

0 个答案:

没有答案