【问题标题】:How to get output redirect as parameter in bash?如何在bash中将输出重定向作为参数?
【发布时间】:2016-04-07 09:01:57
【问题描述】:

我想知道是否可以在bash中获取输出重定向文件名作为参数?

例如:

./myscript.sh parameter1 > outputfile

有没有办法将“输出文件”作为 $2 之类的参数?在我的脚本中,我必须在 outputfile 中执行一些操作,但我不知道我必须更新哪个文件......第二个问题是,这个脚本已经在运行并被多个任务使用,所以我无法更改用户输入.. .

最好的问候

【问题讨论】:

  • 我不确定我是否理解问题所在。脚本当然可以重定向到名称作为参数给出的文件,如doSomething > $2; andSomeMore -foo $1 >> $2
  • 你要做哪些操作?如果您直接操作该文件,则可能与写入stdout 的普通输出相冲突。

标签: bash parameters output io-redirection


【解决方案1】:

重定向不是程序的参数。当程序的输出被重定向时,shell 打开文件并将文件描述符2 连接到它,然后再运行程序。然后程序简单地写入 fd 2(又名stdout)并转到文件。

在 Linux 和类似系统上,您可以使用 /dev/stdout,它是指向进程标准输出文件的符号链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2016-07-05
    • 1970-01-01
    • 2012-04-04
    • 2018-04-26
    • 2015-10-21
    • 2014-11-17
    相关资源
    最近更新 更多