我试图将变量服务设置为以下值
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
(删除最短的前导子字符串匹配*/
)如果您也需要的话。