我编写了一个shell script
使用cat
和tr
命令来生成文件的脚本。我的 shell 脚本如下所示
#!/bin/bash
printf "generating random file > plaintext \n"
cat -v | tr "a-z" "b-y" < plaintext > generatedtext
在执行脚本时,它不会终止cat
命令,并且当我使用CTRL
+Z
停止 shell 脚本执行时。现在,当我查看 - 的内容时,generatedtext
第一个字符被更改(基于tr
),其余字符都是一个并且与明文中的相同。
例如,如果内容plaintext
这是一个苹果。
shell执行后,内容generatedtext
xhis 是一个苹果。
答案1
tr
阅读纯文本文件后,您需要:
#!/bin/bash
printf "generating random file > plaintext \n"
cat -v < plaintext | tr "a-z" "b-y" > generatedtext
您的问题plaintext
被重定向到tr
not cat
。或者,您可以在子 shell 中运行管道命令:
#!/bin/bash
printf "generating random file > plaintext \n"
( cat -v | tr "a-z" "b-y" ) < plaintext > generatedtext