有些命令在键入窗口时与存储在文件中并以“。”运行时导致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中会以某种方式静默删除这些内容。
谢谢。