如何创建文件或文件夹并同时将其写入.sh文件?
例如:文件的字数统计,将该信息写入新文件并同时将其保存在.sh 文件中。
我试过:
echo 'wc filename.txt > ./folder/newfilename.txt' >>ToThefilename.sh
它会给我文件夹中文件名的字数,但在 sh 文件中,它会给我引号中的内容。
答案1
Echo 将逐字逐句地打印你用引号给出的内容。因此
echo 'wc filename.txt > ./folder/newfilename.txt' >>ToThefilename.sh
应将此文本附加到ToThefilename.sh
wc 文件名.txt > ./文件夹/新文件名.txt
如果您想将输出写入wc filaname.txt
“ToThefilename.sh”,您只需执行wc filename.txt >>ToThefilename.sh
因此如果我这样做wc examples.desktop > foo.txt
则将foo.txt
包含该命令的结果:
amanda@mona:~$ cat foo.txt
240 569 8980 examples.desktop
如果你只是想记录你做过的事情或者filename.txt
你可以做的事情history | grep filename.txt > ToThefilename.sh
如果这不是您想要实现的目标,请澄清您的问题!要执行更复杂的事情,您可能需要编写一个 shell 脚本来接收输入并对其进行一些不同的操作。
答案2
您可以使用tee
流程替换来实现这一点:
echo 'wc filename.txt' | tee >(bash > ./folder/newfilename.txt) >> ToThefilename.sh
进程替换就像 tee 命令的文件一样。tee 将把 echo 命令的输出通过管道传输到文件和 stdout(重定向将其附加到脚本中)。bash 将在其 stdin 上读取该命令