我在这里使用sh的文件来运行一些命令。现在我想用awk解析这些命令的输出。但是,每次执行它时,我都会得到命令的输出附加类似“%No such child process”
这就是我的脚本的样子。
#!/bin/sh
com = "sudo -u username /path/of/file -l"
$com <<EOF | awk '{print $0}'
Commands.
.
.
.
EOF
如何在不添加不需要的字符串的情况下使用heredoc和管道? 感谢
答案 0 :(得分:0)
没问题,请检查:
$ cat <<EOF | awk '{print $1}'
a b c
1 2 3
EOF
a
1
答案 1 :(得分:0)
您的变量分配在某些方面是错误的。首先,你实际上并没有分配变量;您正在尝试运行名为com
的命令,其参数为=
,字符串为"sudo ..."
。不得在=
:
com="sudo ..."
其次,命令行不应存储在变量中; shell的解析器只能按照你想要的非常简单的命令来完成工作。完全输入命令,或使用shell函数。
com () {
sudo -u username /path/to/file -l
}
com <<EOF | awk '{print $0}'
...
EOF