.shスクリプトで次の形式を試しています。
echo 'string' $var >> print.dat
以下を印刷します。
'string' 14.27
これは私が望むものとほぼ同じですが、引用符を消す必要があります。私に必要なのは:
string 14.27
ここに解決策を知っている人はいますか?これは簡単な質問だと確信していますが、周りを検索しましたが、欲しいものが見つかりません。たぶん、正確に何を検索するのかわかりません。
編集する:
助けてくれてありがとうが、認めるのは嫌だが、私はとても愚かな間違いを犯した。 print.datは必要に応じて印刷を続けますが、出力を表示するにはsh -xを使用しているため、文字列の周りに引用符が表示されます。
答え1
echo 'string' $var >print.dat
これにより、何も表示されませんが、次の値(参照がないため一部の変換が進行する可能性があります)をファイルにstring
書き込みます。文字列の周りの引用符が削除されます。$var
print.dat
エイリアスを指定していないことを確認してくださいecho
。同じ名前の別名またはシェル関数をバイパスするには、次のようにします。
command echo 'string' $var >print.dat
または/bin/echo
代わりに使用してくださいecho
。
printf
一般に、次の移植性に優れた方法を使用することもできますecho
。
printf 'string %s\n' "$var" >print.dat
答え2
この回避策はこれを行います(シェルバックスラッシュバックティックによって異なります)。
echo 'string' $var | tr -d \' >> print.dat