我在脚本中写了以下行,但它没有为变量 a 分配任何值
a= grep -n mark /etc/samba/smb.conf |cut -d: f1
我注意到 smb.conf 中变量 a 中存在标记字符串的行号。但变量值为空。可能是什么问题
答案1
两件事情:
- 变量名、信号
=
和变量值之间不能有空格 如果要将命令或一系列命令的结果放在变量中,则必须将其括在
$(command)
或旧式反引号中。下面两行都是正确的,并且执行相同的操作:a=`commands` a=$(commands)
所以你的路线必须是
a=$(grep -n mark /etc/samba/smb.conf |cut -d: f1)
关于如何使用反引号或新样式进行连接存在一些差异$()
,请检查这个问题看到良好的反响。
答案2
a=`grep -n mark /etc/samba/smb.conf |cut -d: -f1`
答案3
尝试一下
a=$(grep -n mark /etc/samba/smb.conf |cut -d: f1)
或者,您可以使用反引号代替 $()(这可以使代码看起来更美观)
答案4
也许可以尝试像这样使用 cut:
a=`grep -n mark /etc/samba/smb.conf |cut -d: -f1`