加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

简单的Unix重定向问题:将文件中的行作为脚本的命令行参数传递

发布时间:2020-12-16 01:46:08 所属栏目:安全 来源:网络整理
导读:好吧,我的Unix脚本编写技巧显然很生疏.我想要做的就是有一个带有4个参数的文件,我希望将它们传递给脚本,就像它们来自命令行一样.但奇怪的是这样做: ./myscript.sh mycmds.txt 似乎没有像我期望的那样工作. myscript.sh的内容是: cat out.txt EOF$1 $2 $3 $
好吧,我的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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读