0

我正在尝试执行以下操作:

cat > somefile "some text" <ctrl+d>; clear; some other program

但不必按 <"ctrl + d"> 以便该行将创建文件然后运行其他程序。我试过 echo "some text" > somefile; 但是有太多的特殊字符。任何人都知道解决这个问题的方法

4

2 回答 2

1

认为您可能正在寻找的是这些方面的东西:

pax> cat >tempfile ; tput clear ; someprog
Enter your data here for tempfile
<ctrl-d>
**screen clears and someprog runs**

结束文件CTRL-D不是您输入的命令的一部分,它是命令输入流的一部分cat

如果您不想使用输入流,您要么必须解决变体(学习拥抱 shell 转义的美妙世界 - 您可以通过使用单引号而不是双引号来echo绕过其中的大多数那些),或者只是提前创建您的输入文件并使用以下内容:

cp sourcefile tempfile ; tput clear ; someprog
于 2013-06-14T07:02:45.843 回答
1

If you wish to write some text in somefile in multiple lines or with special characters, you should try this. EOF is treated as a special string here that will terminate cat automatically when found but it could be anything else.

cat > somefile << EOF
some text
EOF

some other program 
于 2013-06-14T07:03:52.373 回答