如何使用 bash 命令参数创建文件名? [复制]

Posted

技术标签:

【中文标题】如何使用 bash 命令参数创建文件名? [复制]【英文标题】:How can I create a filename using bash command parameter? [duplicate] 【发布时间】: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 从未见过也无法更改。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

date > "$(echo AZ)".txt

【讨论】:

以上是关于如何使用 bash 命令参数创建文件名? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 yml 文件中的 bash 命令将所有文件复制到新目录?

Bash 脚本无法识别命令行参数? [复制]

如何在 bash 别名中包含参数? [复制]

如何提取文件名并更改 bash 的结尾? [复制]

如何将文件路径作为 bash 脚本中的参数传递给函数? [复制]

如何使用参数制作 Bash 函数? [复制]