gpt4 book ai didi

linux - Bash 限制父脚本命令行参数传递给子脚本参数

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:42 25 4
gpt4 key购买 nike

我们有父 bash 脚本

parent_source.bash

#!/bin/bash

source child_test.bash

在 child_test.bash 中

echo $@ 
#Doing some validation checks for $@, for child_script command line arguments are optional

执行时的位置

 source parent_source.bash one two

子脚本在 $@ 中使用“一”和“二”,因此验证失败,它不认为是给子脚本的零参数。假设它有 2 个命令行参数的子脚本。

但是如果我们也为 child 提供命令行参数,它也可以正常工作。

有人能帮帮我们吗

谢谢

最佳答案

执行 source 时命令,您实际上将 child_test.bash 的内容注入(inject)到您的 parent_source.bash 脚本中,然后,当 child_test.bash 中的第一行> 正在执行,即:

回显$@

它实际上是指传递给父脚本的参数,因为命令的范围实际上在 parent_source.bash 脚本上。

我建议在不将内容注入(inject)父脚本的情况下执行脚本。

像这样:

parent_source.bash:

#!/bin/bash

./child_test.bash

child_test.bash:

echo $@ 
#Doing some validation checks for $@, for child_script command line arguments are optional

关于linux - Bash 限制父脚本命令行参数传递给子脚本参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39096093/

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