Linux将字符串保存到文件而不使用ECHO命令

时间:2017-02-02 22:27:38

标签: linux bash shell

我想将命令保存到文件中(例如我想将字符串“cat / etc / passwd”保存到文件中)但我不能使用echo命令。

如何在不使用echo命令的情况下直接创建字符串并将其保存到文件中?

7 个答案:

答案 0 :(得分:2)

您可以将cat重定向到文件,输入文字,然后在完成后按Control-D,如下所示:

cat > file.txt
some text
some more text
^D

^D我的意思是最后按下Control-D。该行必须为空。 它不会是文件的一部分,只是终止输入。

答案 1 :(得分:1)

 { { command ls $(dirname $(which cat)) | 
    grep ^ca't$'; ls /etc/passwd; } | 
    tr \\n ' '; printf '\n'; }  > output-file

但这样做可能要简单得多:printf 'cat /etc/passwd\n'

要清楚,这是一个诙谐的解决方案。最初的命令是一种非常复杂的方式来获得你想要的东西,这是一个幽默的答案。理解也许是有益的。

答案 2 :(得分:1)

您是否出于安全目的而避免使用ECHO(例如,您正在使用共享终端,并且您不希望在您在文件中写入的内容的历史记录中留下痕迹)或对于替代方法,你是只是好奇

回声的简单替代方法:

正如有人所说,重定向 cat 可能是更简单的方法。 我建议您手动输入文件结尾,如下所示:

cat <<EOF > outputfile

> type here
> your 
> text
> and finish it with
> EOF

以下是您要求的字符串,例如:

 cat <<EOF > myscript.sh
    cat /etc/passwd
    EOF

你可能不希望每个人都知道你偷看了那个文件,但是如果这是你的目的请注意将它包装在一个可执行文件中不会使它更私密,因为无论如何都会记录这些行。 ..

安全 - 避免使用历史记录等。

在现代shell中,只需尝试在每个命令的开头添加一个空格,并随意使用它。

顺便说一下,如果可以的话,我最好的提示是完全避免使用该终端。如果你有两个shell(另一台机器甚至只是同一台机器上的另一个安全用户),我建议你使用 netcat 。见这里:http://www.thegeekstuff.com/2012/04/nc-command-examples/?utm_source=feedburner

答案 3 :(得分:0)

我不确定我是否理解正确但

    cat /etc/passwd > target.file

使用&gt;运算符将其写入文件而不回显

答案 4 :(得分:0)

如果您需要在程序中使用它:

cat <<EOF >file.txt
some text
some more text
EOF

答案 5 :(得分:0)

我想你可能正在尝试将字符串的内容打印到文件中,因此你提到了echo

你正在避免这种情况:

echo "cat /etc/passwd" > target.file

您可以将此字符串与cat结合使用。

cat > target.file <<< "cat /etc/passwd"

现在,文件target.file将包含字符串cat /etc/passwd

$ cat target.file
cat /etc/passwd
$

答案 6 :(得分:0)

创建字符串: VAR1 = your command 将文件或变量保存在文件中而不使用echo: cat $ FILE / VAR1&gt; /新/文件/路径