我有一个小的bash脚本,通过使用关键字greps / awk段落.
但在添加额外的代码后:set var =“(……)”它只打印一个空行而不是段落.
所以我想问一下是否有人知道如何正确地将awk输出传递给变量进行输出?
我的代码:
#!/bin/sh set var = "(awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"}/FileHeader/' /root/Desktop /logs/Default.log)" echo $var;
谢谢!
解决方法
使用
command substitution捕获进程的输出.
#!/bin/sh VAR="$(awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"}/FileHeader/' /root/Desktop/logs/Default.log)" echo "$VAR"
关于shell脚本的一些一般建议:
>(几乎)总是引用每个变量引用.>永远不要在变量赋值中将等号放在等号周围.