0

我希望这里有人可以提供建议...

我想知道是否可以将变量传递给反引号内的命令,如下所示的 lufslist 命令:

#!/bin/bash

    while active_now
        do
              if [ $active_now == no ]
              then
                 while read zonename
                 do
                       ...

                 done < <(`lufslist $be_name`)
              fi
        done < <(lustatus | sed '1,3d' | awk '{print $3}')

我认为/希望我与上述尝试相当接近,也许我只是缺少某种引号或括号?

提前致谢

4

1 回答 1

3

是的!您可以使用:

while read zonename
do
...
done < <(lufslist "$be_name")

注意你的区别

done < <(`lufslist $be_name`)

done < <(lufslist "$be_name")

使()命令在子shell中执行,因此您不必使用`字符来调用它。

此外,将变量用双引号括起来总是好的:lufslist "$be_name".

例子

$ info="1 month ago"
$ while read a; do echo $a; done < <(date -d"$info")
Wed Sep 18 15:00:59 CEST 2013
于 2013-10-18T13:01:46.077 回答