【问题标题】:Copy the Shell script output in a File将 Shell 脚本输出复制到文件中
【发布时间】:2015-10-02 09:09:51
【问题描述】:

我结合了两个脚本的别名。在我的操作系统设置中遵循别名工作正常

alias build_command 'directory_1/foo.sh build'
alias copy_command 'directory_2/bar.sh'
alias build_copy 'build_command && copy_command'
alias bc build_copy

问题是当我想将终端输出转储到文件中时。谁能告诉我我该怎么做?仅供参考,我在终端中尝试了bc > temp.txt,但不起作用,我不允许修改构建和复制脚本:(

提前致谢:)

【问题讨论】:

  • 首先,你不应该使用别名,而应该使用函数。现在,如果你真的想使用你的bc 别名并重定向输出,请使用:{ bc; } > temp.txt,否则只有copy_command 的输出被重定向。

标签: bash terminal copy output


【解决方案1】:

来自man bash

对于几乎所有用途,别名都被 shell 函数所取代。


输入bc > temp.txt时的问题是bash将别名扩展为:

directory_1/foo.sh build && directory_2/bar.sh > temp.txt

这样只有directory_2/bar.sh 的输出会被重定向。

要解决此问题,请使用:

{ bc; } > temp.txt

因此,由于分组,完整命令的输出被重定向。


另一种选择是使用函数:

bc() { build_copy; }

现在bc > temp.txt 做你想做的事。


附带说明:bc 是一个相当糟糕的名称选择,因为已经有一个名为 bc 的实用程序......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多