我对bash脚本编写很新,我对它能做的一切感到惊讶。我碰到了一堵墙,尝试了许多不同的组合来让它发挥作用,似乎无法得到它。
非常感谢任何想法/提示/答案!
问题:我有一个文件作为ldapsearch脚本的一部分被删除,它包含sAMAccountName和mail属性。这些是分开的,我想: 1)获取一个grepped文件(grep -E" sAMAccountName | mail")这会产生每行一个条目并输出为,然后我将提供给postmap hash:/ etc / postfix / canonical(ftw)
然而!我的世界统治计划已被推迟,因为我将命令执行的输出分配给$ stuff issues命令的语句未找到... grrr。请善意互联网bash大师请指出我的错误! note 并非所有代码都包含在内,只是给我带来麻烦的一块: ref1:Bash regex if statement
#############################
#!/bin/bash
while read line; do
if [[ $line =~ ^sAM ]]; then
stuff = $( echo "$line" | cut -d\: -f2) #<-- command not found
echo -n $stuff >> /etc/postfix/tmp-canonical
fi
if [[ $line =~ ^mail ]]; then
stuff = $( echo "$line" | cut -d\: -f2) #<-- command not found
echo -n "<tab>$stuff\n" >> /etc/postfix/tmp-canonical
fi
done < "$1"
#end
答案 0 :(得分:0)
stuff被解释为命令而不是变量赋值。删除空间,它应该工作。
stuff=$( echo "$line" | cut -d\: -f2)
答案 1 :(得分:0)
发现它!我只是没有努力尝试!好的,这是我如何解决它:
代码段(已更正)
STUFF=$(echo "$line" | cut -d\: -f2)
原作 -
STUFF = $(echo "$line" | cut -d\: -f2)
正在解释STUFF和“=”之间的空格,发现这篇文章:How to set a variable to the output from a command in Bash?