一个非常简单的shell脚本问题。我有一个类似这样的文件:
var "aaaaa"
var "bbbbb"
...
现在,如何将引号中的字符串分配给变量? 这就是我现在所拥有的(但我错过了分配部分......):
while read line
do
echo $line | cut -d" " -f3
done
打印我想要的...如何将其保存到变量?
由于
答案 0 :(得分:7)
my_var=$(echo $line | cut -d" " -f3)
您需要执行命令。这就是$()的用途。
答案 1 :(得分:1)
您不必使用外部剪切命令来“剪切”字符串。你可以使用shell,效率更高。
while read -r a b
do
echo "Now variable b is your quoted string and has value: $b"
done <"file"
或者
while read -r line
do
set -- $line
echo $2
done <"file"
答案 2 :(得分:0)
取决于shell。
Bourne和衍生品,你做
my_var_name=expression
C shell和衍生物,你做
setenv my_var_name expression
如果要保存命令的输出(例如“cut xyz”),则使用反引号运算符作为表达式:
my_var_name=`echo $line | cut -d" " -f3`
我认为bash也支持$()但不确定与反引号的区别 - 请参阅http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html中的第3.4.5节