问题In a shell script: echo shell commands as they are executed之后,我想知道如何将执行/回显的命令重定向到文件(或变量)?如何在执行回显shell命令时执行
我试图通常标准输出重定向,像ls $HOME > foo.txt
,设置在bash详细模式,set -v
后,但只有LS输出被重定向。我想要的是将一个函数(称为“save_succ_cmdline()”)放在一个(复杂的)命令行前面(例如,save_succ_cmdline
grep -m1 "model name" /proc/cpuinfo | sed 's/.*://' | cut -d" " -f -3
),这样该函数将会保存如果成功,则给定命令行。
请注意,上面的grep -m1 "model name" ...
示例只是给出一个带有特殊字符(|,',“)的命令行示例,我对这样的函数”save_succ_cmdline()“的期望是实际命令在功能名称grep -m1 "model name"...
之后执行,函数验证退出代码([$? == 0]
)决定命令行是否可以保存,如果实际命令成功,函数(“save_succ_cmdline”)可以保存命令-line expression(with the pipe and everything)。
我会使用bash -o verbose
功能让(暂时)保存命令行,但我无法做到这一点
在此先感谢。
目前还不清楚“grep -m1”型号名称“/ proc/cpuinfo | sed's /.*://'| cut -d“”-f -3“正在使用'save_succ_cmdline'功能。你能澄清吗? – anubhava
没错。我编辑了这个问题,希望它更清楚。 – Brandt
'grep -m1“型号名称''会针对命令本身运行而不是输入的命令? – anubhava