【问题标题】:Explicitly setting the current directory (pipeline shell)显式设置当前目录(管道外壳)
【发布时间】:2016-12-28 02:25:41
【问题描述】:

SHORT:如何显式设置当前工作目录?

LONG:所以我有 52 个程序菊花链在一起。我有一个运行良好的 shell 脚本管道。唯一的问题是,如果我 cd 进入包含文件的目录并运行它,我只能运行它。一些子程序没有允许我显式设置输出目录的机制。他们将所有内容转储到当前工作目录中。如果您正在运行此管道的 1 个实例,这很好,但如果您尝试一个接一个地处理十几个数据集,则不是很好。我知道我可以通过以下方式获取当前工作目录:

回显 $PWD

但是我该如何设置呢?

【问题讨论】:

    标签: pwd


    【解决方案1】:

    您可以为管道中的各个程序设置当前目录,而不会影响管道中的其他程序,如下所示:

    PWD=path1 command1 && PWD=path2 command2
    

    通常,您可以使用该语法设置任何环境变量。这是我在 bash 中尝试过的一个真实示例:

    $ PWD=/home ./test.rb && PWD=/ ./test.rb 
    Running in /home
    Running in /
    

    【讨论】:

    • 感谢您的反馈,为什么我不能使用简单的 linux 命令,如“PWD=/data1/test mkdir dir2”......这不会改变 dir2 的位置生产。
    • 还有,为什么我不能组建3rd tier cmets?双空格 html 标记
      更多标记
    • 可以格式化cmets;例如,输入`code`,它看起来像code
    • 嗯,我不知道为什么它不适用于mkdir。除了 PWD 环境变量之外,还必须有另一种机制来设置当前工作目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2022-10-04
    相关资源
    最近更新 更多