我正在尝试在 Bash 脚本中捕获“at”命令的结果。捕获命令输出的各种方法似乎不起作用,但我不确定它是命令中的管道还是其他东西。
echo $cmd | at $deployat
产生输出
job 42 at 2014-04-03 12:00
我正努力赶上工作的时间。
但是,我期望像
v=$($cmd | at $deployat)
echo $v
会工作,或者
v=$(echo $cmd | at $deployat)
echo $v
或者
v=`$cmd | at $deployat`
echo $v
但是所有这些都让脚本挂起,看起来它正在等待一些输入。
什么是正确的方法来结束一个变量,如:
2014-04-03 12:00
==============================
编辑:
一种可能的复杂情况是 $cmd 带有标志:
ls -l
例如。
扩展的命令可能类似于:
echo ls -l | at noon tomorrow
解决方案:
v=$(echo $cmd | at $deployat 2>&1)
echo $v