Bashでの変数置換のバックスラッシュ

Bashでの変数置換のバックスラッシュ

ハードドライブを正しく分割するのに役立つBashスクリプトを作成していますが、変数に数字を追加する必要がある奇妙な問題が発生しました。私はBashの経験があまりないので、正しい結果を得るのに少し時間がかかりましたが、一時的に何かをすることができました。

以下は、私が構築している作業の例です。

#!/bin/bash

devName="/dev/sda"
devTarget=$devName\3

echo "$devTarget"

これdevNameは変数ですが、/dev/sda後でスクリプト内の3番目のパーティションの変数も設定する必要があるため、表記法を使用しました。\これにより、数値を追加して出力を生成すること3ができました。/dev/sda/dev/sda3

表記はうまくいきますが、\これがこのようなことをする正しい方法であるかどうか疑問に思います。 Pythonでは、引用符などの次の文字を無視するために使用されたため、これを使用していますが、この場合はその逆を実行したかったので、驚くほどうまくいきます。これが変数を追加する最良の方法ではない場合、誰かがBashでこれを行う最良の方法の例を示すことができますか?

ベストアンサー1

文字列に変数を挿入する安全な方法はを使用することです${var_name}

#!/bin/bash

devName="/dev/sda"
devTarget="${devName}3"

echo "$devTarget"

このように、Bashはどの変数が挿入されるのか疑いません。

devTarget=$devName\3しかし、それがどのように機能するのか面白いです。理由はわかりません。

おすすめ記事