gpt4 book ai didi

unix - 简单的Unix重定向问题: Pass lines in a file as command line arguments to a script

转载 作者:行者123 更新时间:2023-12-01 10:09:24 26 4
gpt4 key购买 nike

好吧,我的 Unix 脚本编写技能显然很生疏。我想要做的就是有一个包含 4 个参数的文件,我想将它们传递给脚本,就好像它们来自命令行一样。但奇怪的是这样做:

./myscript.sh < mycmds.txt

似乎没有按我预期的方式工作。 myscript.sh 的内容是:

cat >> out.txt <<EOF
$1 $2 $3 $4
EOF

因此,如果我像这样从命令行运行 myscript.sh:./myscript.sh test1 test2 test3 test4一切正常,我看到了test1 test2 test3 test4显示在 out.txt 文件中。但是如果我把 test1 test2 test3 test4作为名为 mycmds.txt 的文件中的一行,然后运行 ​​./mysript.sh < mycmds.txt我只是在 out.txt 文件中得到一个空行。

那么我在这里做错了什么?将参数存储在文件中并将它们传递给脚本的正确方法是什么,以便将它们当作来自命令行一样对待?

最佳答案

要使 mycmds.txt 的内容可用作命令行参数,只需在调用 myscript.sh 时内联内容即可:

./myscript.sh $(< mycmds.txt)

关于unix - 简单的Unix重定向问题: Pass lines in a file as command line arguments to a script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7148926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com