遵循 bash 脚本有什么问题?

vni*_*x27 4 scripting linux bash

我在脚本中写了以下行,但它没有为变量 a 分配任何值

a= grep -n mark /etc/samba/smb.conf |cut -d: f1
Run Code Online (Sandbox Code Playgroud)

我方面行号,其中标记字符串存在于变量 a 中的 smb.conf 中。但是变量的值为空。可能是什么问题

cor*_*ump 10

两件事情:

  1. 变量名、=信号和变量值之间不能有空格
  2. 如果你想把一个命令或一系列命令的结果放在一个变量上,你必须把它括在$(command)或 旧式反引号上。下面两行都是正确的,做同样的事情:

    a=`commands`
    a=$(commands)
    
    Run Code Online (Sandbox Code Playgroud)

所以你的线路必须是

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

关于如何连接反引号或新样式的使用存在一些差异$(),请在 SO上查看此问题以查看良好的响应。