Bash shell扩展命令未找到

时间:2017-07-07 15:09:01

标签: bash shell command pipe expansion

我对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

2 个答案:

答案 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?

相关问题