Kev*_*vin 6 bash shell loops eval heredoc
我需要在具有参数化值的交互式程序/实用程序中执行一系列命令。有没有办法在 heredoc 内循环?像下面..不知道eval这里是否有任何帮助。下面的示例似乎不起作用,因为交互式似乎无法识别系统命令。
#!/bin/sh
list="OBJECT1 OBJECT2 OBJECT3"
utilityExecutable << EOF
for i in $list ; do
utilityCommand $i
done
EOF
Run Code Online (Sandbox Code Playgroud)
与其将此处文档传递给utilityExecutable,不如将所需的文本通过管道传递给它。您可以使用echofor 循环中的语句创建所需的文本,并将整个循环输出通过管道传输到utilityExecutable:
#!/bin/sh
list="OBJECT1 OBJECT2 OBJECT3"
for i in $list; do
echo "utilityCommand $i"
done | utilityExecutable
Run Code Online (Sandbox Code Playgroud)