複数の変数をプレーンテキストデータベース形式で保存

複数の変数をプレーンテキストデータベース形式で保存

各ループの繰り返しでは、bashスクリプトの変数にいくつかのコマンド出力を保存しています(例:3)。繰り返しが完了するまで、この変数を3つのフィールドを含むプレーンテキストデータベースに保存したいと思います。

アイデアは次のとおりです。

If..

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

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

fi

変数の値をDatabase.txtに保存するためにecho変数を呼び出すことは有効ですか?プレーンテキストでタブ区切りにするにはどうすればよいですか?

答え1

私が構築した同様のプロジェクトでは、これは私にとってうまくいきました。

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

答え2

公開したコードは、コマンドの標準出力を次のファイル名にキャプチャします。価値&その他の変数$v1。それがあなたがしていることであれば、いいえ、最後のechoステートメントは生成されません。コンテンツこの3つのファイルがあります。名前

これら3つのコマンドの出力をタブ区切りのファイルに保存するには、database.txt次の手順を実行します。

printf "%s\t%s\t%s\n" "$(Command output1)" "$(Command output2)" "$(Command output3)" >> database.txt

関連情報