他の変数を含むbash変数を設定するには? [コピー]

他の変数を含むbash変数を設定するには? [コピー]

変数サービスを次の値に設定しようとしています。

var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2

結果echo $var1 | cut -d '/' -f 1は「first」です。そうですね。ただし、結果を他の変数に設定することはできません。上記の例では、var2は空です。

文字列の前の部分が\var2の値として返されるように、3行の正しい構文は何ですか?

ベストアンサー1

コマンド置換を使用できます

var2=$(echo "$var1" | cut -d '/' -f 1)

ただし、この場合は、シェルのパラメータ置換を直接使用することをお勧めします。

$ var2=${var1%/*}
$ echo "$var2"
first

(最も短い末尾の部分文字列一致の削除/*)と

$ var3=${var1#*/}
$ echo "$var3"
second

(最も短い先行部分文字列の一致を削除*/)必要に応じて。

おすすめ記事