【问题标题】:How can I create a filename using bash command parameter? [duplicate]如何使用 bash 命令参数创建文件名? [复制]
【发布时间】:2020-10-07 18:32:36
【问题描述】:

我正在尝试使用命令参数创建文件名,但不知道如何去做。这就是我正在尝试的:

echo "AZ" |xargs date >> $1.txt

我正在尝试创建一个名为 AZ.txt 的文件,其中包含日期。

【问题讨论】:

  • 您是在尝试将日期写入名为AZ.txt 的文件,还是将AZ 写入名为2020-06-17.txt 的文件,或其他什么?
  • 我正在尝试写入文件名 AZ.txt
  • date >> AZ.txt 是您要找的吗?我不明白应该在哪里使用参数
  • 要清楚,使用此处的代码,>> $1.txt 发生在 之前 xargs 启动。这不是xargs 的参数,它是运行xargs 以将xargs 的输出重定向到某处的shell 的指令。 xargs 从未见过也无法更改。

标签: bash sh


【解决方案1】:

如果你必须使用 xargs,那么你必须将它的其余部分包装在一个 shell 脚本中以延迟重定向的执行,直到你构建了文件名:

echo AZ | xargs sh -c 'date >> "$1".txt' sh

尾随的“sh”是强制 xargs 参数“AZ”为 $1 而不是 $0

【讨论】:

    【解决方案2】:

    如果文件名来自某个命令,可以使用命令替换:

    date > "$(echo AZ)".txt
    

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多