如何在 Bash 中的 HERE_doc 中获取命令的结果
How to get the result of a command in a HERE_doc in Bash
我正在使用 at
命令安排将来的工作。
DoCurlAt () {
if [ -n "${AuthToken:-}" ] ; then
<< 'EOF'
curl -s -H "${AuthHeader:-}" -H "" --data-urlencode "" ""
EOF
Exitcode=$?
fi
WriteLog Output Info "AT Output: $AtOutput Exitcode: $Exitcode"
}
如何在名为 $AtOutput 的变量中捕获 at 的结果?
我试过
AtOutput=$(bash << EOF
curl -s -H "${AuthHeader:-}" -H "" --data-urlencode "" ""
EOF
)
但这并没有真正给出任何结果。
也试过:
AtOutput=$(curl -s -H "${AuthHeader:-}" -H "" --data-urlencode "" "" | at "")
但我更愿意使用 HERE-doc。
该函数被调用
DoCurlAt "$AcceptJson" "argString=$ArgString" "$ApiUrl/$ApiVersion/job/$JobUid/run" "$OneTime"
例如 $OneTime ($4) 可能是 "at 15:19 today" 输出主要是这样的:
job 7 at 2016-08-16 15:30
at
写入标准错误,而不是标准输出。首先使用 2>&1
重定向将标准错误复制到标准输出。
$ at_output=$( echo "cmd" | at "$when" 2>&1 )
我正在使用 at
命令安排将来的工作。
DoCurlAt () {
if [ -n "${AuthToken:-}" ] ; then
<< 'EOF'
curl -s -H "${AuthHeader:-}" -H "" --data-urlencode "" ""
EOF
Exitcode=$?
fi
WriteLog Output Info "AT Output: $AtOutput Exitcode: $Exitcode"
}
如何在名为 $AtOutput 的变量中捕获 at 的结果?
我试过
AtOutput=$(bash << EOF
curl -s -H "${AuthHeader:-}" -H "" --data-urlencode "" ""
EOF
)
但这并没有真正给出任何结果。
也试过:
AtOutput=$(curl -s -H "${AuthHeader:-}" -H "" --data-urlencode "" "" | at "")
但我更愿意使用 HERE-doc。 该函数被调用
DoCurlAt "$AcceptJson" "argString=$ArgString" "$ApiUrl/$ApiVersion/job/$JobUid/run" "$OneTime"
例如 $OneTime ($4) 可能是 "at 15:19 today" 输出主要是这样的:
job 7 at 2016-08-16 15:30
at
写入标准错误,而不是标准输出。首先使用 2>&1
重定向将标准错误复制到标准输出。
$ at_output=$( echo "cmd" | at "$when" 2>&1 )