1

文字列をエコーまたは印刷しようとすると、正常に印刷されます。

これが文字列です。

IP_NET_TP0                                                                               _

構造は IP_NET_TP0 で、9 個のタブ (\t) と、最後に 7 個のスペースと 1 個のアンダースコアがあります。

それを変数に入れて var1 としましょう。次のように出力するとうまくいきます。

echo $var1 
echo "$var1"

ただし、引用符の追加や文字の追加など、余分なテキストを追加すると、チェーンからスペースが 1 つ削除されます。

echo \"$var1\" 
echo "'"$var1"'"
echo "a" $var1

どうして?!..変数を印刷するか、この$ {var1}のように印刷しようとしましたが、同じ場合は出力を1スペース少なくしました。

以下は、最初のものは他のものと一緒に印刷したもの、2番目のものは単独で印刷したものです.

IP_NET_TP0                                                                             _
IP_NET_TP0                                                                               _

どんな助けでも素晴らしいでしょう。

4

3 に答える 3

3

変数を正しくインスタンス化していない可能性があります。このように宣言しvar1="IP_NET_TP0"たり、var1=IP_NET_TP0印刷したりすると、あなたのやり方でうまくいきます。bash または別のタイプのシェルを使用していますか? これを引き起こす .bash_profile または .bashrc に何か奇妙なものがあるかもしれません。

于 2013-11-14T02:27:05.900 に答える
1

余分なパターンを追加するときにエコーを正しく記述していません

echo \"$var1\" -> echo "\"$var1\""
echo "'"$var1"'" -> echo "'$var1'"
echo "a" $var1 -> echo "a $var1"  #if space is needed between a and the var1

また、このような場合の混乱を避けるために ${var1} を使用してみてください

var="1 x 1 = "
var1="Something"
echo "$var1"
echo "${var}1"
echo "${var1}"
于 2013-11-14T10:46:50.797 に答える