bash - 将参数传递给作为不同脚本的参数的脚本
问题描述
我是编程新手,所以请忍受我试图解释我的问题的方式(也欢迎任何关于如何优雅地表达瓷砖的帮助)。
我有一个 bash 脚本(例如) ,script1.sh
它接受参数a
和(另一个脚本)。本质上,参数for是另一个脚本的名称(比如说)。但是,接受参数和。所以我的问题是,我如何将参数传递给?? (例如,)b
c
c
script1.sh
script2.sh
script2.sh
d
e
f
script1.sh
./script1.sh -a 1 -b 2 -c script2.sh -d 3 -e 4 -f 5
如果以上没有意义,请提前抱歉,不知道如何表达它......
解决方案
您应该为此使用“”
./script1.sh -a 1 -b 2 -c "script2.sh -d 3 -e 4 -f 5"
使用此代码尝试 script1.sh
#!/bin/bash
for arg in "$@"; { # loop through all arguments passed to the script
echo $arg
}
输出将是
$ ./script1.sh -a 1 -b 2 -c "script2.sh -d 3 -e 4 -f 5"
-a
1
-b
2
-c
script2.sh -d 3 -e 4 -f 5
但是如果你运行这个
#!/bin/bash
for arg in $@; { # no double quotes around $@
echo $arg
}
输出将是
$ ./script1.sh -a 1 -b 2 -c "script2.sh -d 3 -e 4 -f 5"
-a
1
-b
2
-c
script2.sh
-d
3
4
-f
5
但是没有-e
为什么?Cozecho
支持参数-e
并使用它。
推荐阅读
- sql-server - 在合并复制中列出冲突列名
- magento - “你大炮进行这种操作,你的reCaptcha声誉太低了”——这是什么意思,好像在向一个5岁的孩子解释?:)
- python - 在heroku上托管一个python discord bot
- javascript - JS 避免在多个位置使用相同的 if 语句
- java - 如何更改 javax.swing 中标题栏的颜色?
- css - 如何用 INNER 注释注释掉 CSS 语句?
- scala - 我无法使用 sbt 工具打包 jar 文件。请找出以下错误
- python - 简单的 Python SumIf 等价
- python-3.x - 如何使用python 3从字符串中删除'b'?
- visual-studio-code - 为测试启用播放按钮或 codelens -Testing API