要将命令的输出存储为sh/ksh/bash中的变量,您可以执行任一操作
var=$(command)
Run Code Online (Sandbox Code Playgroud)
要么
var=`command`
Run Code Online (Sandbox Code Playgroud)
两种方法之间有什么区别?
我试图在Bash脚本中运行一些Python代码,所以我想了解之间的区别是什么:
#!/bin/bash
#your bash code
python -c "
#your py code
"
Run Code Online (Sandbox Code Playgroud)
VS
python - <<DOC
#your py code
DOC
Run Code Online (Sandbox Code Playgroud)
我检查了网络,但无法编译主题周围的位.你认为一个比另一个好吗?如果你想从Python代码块返回一个值到你的Bash脚本,那么heredoc是唯一的方法吗?
stdout我正在处理一个脚本,它首先调用一个嘈杂的(对和)程序进行大量诊断stderr,然后使用其他工具处理其输出。
该程序的冗长使得不可能简单地将其标准输出发送到管道,因此目前我们使用临时文件——我想结束这种做法。
我们可以/tmp/foo要求程序将数据写入,而不是写入 - 它会,没有问题(例如,/dev/fd/N它不需要文件)。seek
stdout它当前发送到和的噪音stderr可以继续到那里——操作员已经习惯了看到它,并且如果它消失就会感到震惊......
但是我如何安排描述符N存在并发送到下一个程序中stdin?
noisy -o /dev/fd/N ?????| filter -i /dev/stdin
Run Code Online (Sandbox Code Playgroud)
如果这需要bash,那就这样吧,但当然,我更喜欢适合整个 sh 系列的解决方案。