gpt4 book ai didi

bash - 附加 bash 参数并传递给其他脚本

转载 作者:行者123 更新时间:2023-11-29 09:46:12 25 4
gpt4 key购买 nike

我需要传递更多原始参数,还想添加一些其他参数。像这样:

#!/bin/bash
params="-D FOREGROUND"
params+=" -c Include conf/dev.conf"

/usr/local/apache/bin/apachectl $params "$@"

如果 params 包含两个或多个参数,则上面的代码不会按预期工作,它被视为一个参数。

最佳答案

如果以下命令在完全如下编写的命令行中执行时有效,则示例中的代码应该有效:

/usr/local/apache/bin/apachectl -D FOREGROUND -c Include conf/dev.conf "$@"

快速网络搜索让我认为你想要的是这个(注意额外的双引号):

/usr/local/apache/bin/apachectl -D FOREGROUND -c "Include conf/dev.conf" "$@"

以下是如何使用数组简单可靠地实现这一点,从而避免“引号内引用”问题:

#!/bin/bash
declare -a params=()
params+=(-D FOREGROUND)
params+=(-c "Include conf/dev.conf")

/usr/local/apache/bin/apachectl "${params[@]}" "$@"

params 数组包含 4 个字符串 ("-D", "FOREGROUND", "-c"“包括 conf/dev/conf”)。数组扩展("${params[@]}",注意这里的双引号很重要)将它们扩展为这 4 个字符串,就好像你用双引号括起它们一样(即无需进一步分词)。

使用具有这种扩展的数组是构建命令然后通过简单扩展执行它们的一种灵活且可靠的方法。

关于bash - 附加 bash 参数并传递给其他脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42175159/

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