下面的bash脚本有什么错误?

我在脚本中写了下面一行,但是没有给variablesa赋值

a= grep -n mark /etc/samba/smb.conf |cut -d: f1 

我在variablesa中的smb.conf中存在标记string的行号。 但是variables的值是null。 可能是什么问题

两件事情:

  1. variables的名称, =信号和variables的值之间不能有空格
  2. 如果您想将命令或一系列命令的结果放在variables上,则必须将其放在$(command)或旧式反引号上。 下面的两行都是正确的,并且做同样的事情:

     a=`commands` a=$(commands) 

所以你的路线必须是

 a=$(grep -n mark /etc/samba/smb.conf |cut -d: f1) 

关于如何连接使用反引号或新样式$() ,有一些差异, 在SO上检查这个问题看到一个好的反应。

 a=`grep -n mark /etc/samba/smb.conf |cut -d: -f1` 

试试这个

a=$(grep -n mark /etc/samba/smb.conf |cut -d: f1)

或者不用$(),你可以使用反引号(这里打开漂亮的代码)

应该是a = $( ... )或者

 a=` … ` 

也许通过尝试像这样使用剪切:

 a=`grep -n mark /etc/samba/smb.conf |cut -d: -f1`