什么是在文本文件中存储变量的Linux命令

时间:2014-12-22 18:21:31

标签: linux shell command

我想在.txt文件中存储一些变量 但是下面的代码只保存最后一个变量。 我该如何解决?

$x1 ="a"
$x2 = "b"
$x3 = "c"

>myfile.txt
echo $x1 >myfile.txt
echo $x2 >myfile.txt
echo $x3 >myfile.txt

3 个答案:

答案 0 :(得分:2)

>是“创建或替换文件,写入输出”。你想要>>,这是“打开文件追加”

echo $x1  >myfile.txt  # create/overwrite file
echo $x2 >>myfile.txt  # append to file
echo $x3 >>myfile.txt  # append to file again

答案 1 :(得分:2)

COMMAND_OUTPUT >
      # Redirect stdout to a file.
      # Creates the file if not present, otherwise overwrites it.

COMMAND_OUTPUT >>
      # Redirect stdout to a file.
      # Creates the file if not present, otherwise appends to it.

tldp documentation on I/O redirection

#writes the variables to the files
x1="a"
x2="b"
x3="c"

echo $x1 >> myfile.txt
echo $x2 >> myfile.txt
echo $x3 >> myfile.txt

答案 2 :(得分:0)

最简单的方法(最少学习)是使用>>附加到文件:

>myfile.txt
echo $x1 >>myfile.txt
echo $x2 >>myfile.txt
echo $x3 >>myfile.txt

您可以省略无回声线并仅使用>代替>>来获得相同的效果,但上面显示的一致性有一些优点。

另一种方法是使用I / O分组运算符{ and }

{
echo $x1
echo $x2
echo $x3
} > myfile.txt

另一种方法是使用execI/O Redirection结合,从此处向网络发送所有标准输出:

exec >myfile.txt
echo $x1
echo $x2
echo $x3

如果您需要将标准输出切换回原始输出,则必须先保留它:

exec 3>&1 >myfile.txt
echo $x1
echo $x2
echo $x3
exec 1&>3 3>&-

3>&1表示法打开文件描述符3作为文件描述符1(标准输出)的副本。 1>&3表示法打开文件描述符1(标准输出)作为文件描述符3的副本(之前创建)。 3>&-表示法关闭文件描述符3.