Javaサーバーからいくつかのデータを取得する単純なbashスクリプトから情報を抽出しようとしています。 SSH変数がスクリプトで実行されたときにawk
ローカルファイルに書き込まないと、必要な情報を抽出するために実行できないようです。私がしている作業は次のとおりです。
check=$(ssh [email protected] "/usr/local/bin/check_mq.sh")
ret=$?
cat=/bin/cat
awk=/usr/bin/awk
output=$($cat $check | $awk -F= '{print $4}' | $awk '{print $1}')
echo $output
echo $check
私のスクリプトでこれが起こった場合。
backchannel_queue messages=0 messages_ready=0 messages_unacknowledged=0
$check
ただし、コマンドをスクリプトに入れると、awk
次のような出力が得られます。
/bin/cat: backchannel_queue: No such file or directory
/bin/cat: 'messages=0': No such file or directory
/bin/cat: 'messages_ready=0': No such file or directory
/bin/cat: 'messages_unacknowledged=0': No such file or directory
$output
私のシステムのテキストファイルに書き込んでこれを行うことができました。
check_output="/home/user/Documents/scratch/check_output.txt"
echo $check > $check_output
output=$($cat $check_output | $awk -F= '{print $4}' | $awk '{print $1}')
echo $output
$output
ここで何か間違っているようです。ファイルに書き込む必要はありません。それともこれが唯一の選択ですか?この数字を変数に入れたら、いくつかのIF
ステートメントを使用してこの数字がそれより大きいかどうかを確認しますx
。
ベストアンサー1
ファイルのリストを知らせると、cat
そのリストは実際にはファイルではなく作業したいものです。これを行うecho
代わりに使用したいと思いますcat
。