如何设置包含另一个变量的 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 是空的。

第 3 行的正确语法是什么,以便将 之前的字符串部分\作为 var2 的值返回?

答案1

您可以使用命令替换

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

然而在这种情况下,最好直接使用 shell 的参数替换:

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

(删除最短的尾随子字符串匹配/*)和

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

(删除最短的前导子字符串匹配*/)如果您也需要的话。

相关内容