Хранение нескольких переменных в текстовом формате базы данных

У меня есть некоторые выходные данные команд, сохраненные в переменных в сценарии bash, например 3, на каждой итерации цикла. Я хотел бы сохранить эти переменные в текстовой базе данных, содержащей 3 поля, до завершения итерации

Идея заключается в следующем:

If..

Command output1 > $v1
Command output2 > $v2
Command output3 > $v3

echo $v1 $v2 $v 3 >> database.txt

fi

Будет ли вызов переменной echo допустим для сохранения значения переменных в database.txt? Что, если мы хотим, чтобы они были разделены табуляцией в простом тексте?

0
09.12.2016, 00:51
2 ответа

В аналогичном проекте, который я построил, этот отлично работал у меня:

export TMPFILE=/tmp/yadvalues

function listselect { 
echo "Args Received = $0, $1 , $2 , $3 , $4 , $5" #Display args send to function 
echo -e "FILEID=\"$1\"\nFILENAME=\"$4\"\nFILECOMMAND=\"$5\"" > $TMPFILE
# Save some of the args in file
}
#export -f listselect

function filedisplay { 
source $TMPFILE 
ftd=$(yad --title="File Display-$FILENAME" --width=800 --height=500 \
--center --text-info --filename=$FILENAME --wrap --editable \
--button="Go Back":0)    
# Use var $FILENAME present in $TMPFILE
}
#export -f filedisplay
0
28.01.2020, 04:49

Опубликованный вами код будет записывать стандартный вывод Command в имена файлов на основе значений переменных $ v1 и т. Д. Если это то, что вы делаете, то: нет, оператор echo в конце будет генерировать не содержимое этих трех файлов, а скорее имена трех файлов .

Если вы хотите, чтобы выходные данные этих трех команд были сохранены, разделенные табуляцией, в файл database.txt , выполните следующее:

printf "%s\t%s\t%s\n" "$(Command output1)" "$(Command output2)" "$(Command output3)" >> database.txt
0
28.01.2020, 04:49

Теги

Похожие вопросы