文字列をエコーし​​ようとすると、端末に複数のスペースが送信されますが、文字列はそのまま必要です。

文字列をエコーし​​ようとすると、端末に複数のスペースが送信されますが、文字列はそのまま必要です。

次のことを試してください。

echo "- - 830 "FTL  MFG" -"

これは"FTL MFG"別のアイテムとして保管する必要があります。

私は何が間違っていましたか?

答え1

echo "- - 830 "FTL  MFG" -"
     ^^^^^^^^^^        ^^^^ quoted
               ^^^^^^^^ not quoted

echo- - 830 FTL2つのパラメータであるとを確認し、MFG -それらの間にスペースを入れて印刷します。引用符付き出力が必要な場合は、エスケープするか、単一引用符を使用して文字列を囲む必要があります。

echo "- - 830 \"FTL  MFG\" -"
echo '- - 830 "FTL  MFG" -'

答え2

二重引用符は"文字列区切り文字です(文字列はほとんどのプログラミング言語とは異なり、シェルで動作します)。比較する:

$ for a in "- - "830 FTL MFG" -"; do echo "$a"; done
- - 830
FTL
MFG -

二重引用符をエスケープするか(文字通り二重引用符として解釈されるように)、'それを使用して文字列を区切る必要があります。

%  echo "- - 830 \"FTL MFG\" -"
- - 830 "FTL MFG" -
% echo '- - 830 "FTL MFG" -'
- - 830 "FTL MFG" -

関連情報