2014-12-22 2 views
0

Я хочу сохранить некоторые переменные в файле .txt , но приведенный ниже код сохраняет только последнюю переменную. Как это исправить?Что такое команда Linux для хранения переменных в текстовом файле

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

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

использовать '>>' для добавления файла – nu11p01n73R

ответ

2

> является "создание или замены файла, напишите выход". Вы хотите >>, что "открыть файл для добавления"

echo $x1 >myfile.txt # create/overwrite file 
echo $x2 >>myfile.txt # append to file 
echo $x3 >>myfile.txt # append to file again 
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 
+0

Обратите внимание, что это не пуст файл перед началом записи, тогда как вопрос действительно сделал это. –

0

Самый простой способ (как минимум обучения) является использование >> для добавления в файл:

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

Вы можете опустить линию без эха и использовать только > вместо >>, чтобы получить тот же эффект, но есть некоторые достоинства к консистенции, показанной выше.

Другой способ сделать это с помощью операторов ввода/вывода группировки, { and }:

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

И еще один способ, чтобы отправить все стандартный вывод в файл здесь и далее, используя exec в сочетании с I/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.

Смежные вопросы