gpt4 book ai didi

shell - 使用变量从另一个脚本调用 shell 脚本时如何引用参数

转载 作者:行者123 更新时间:2023-12-02 08:55:22 25 4
gpt4 key购买 nike

我有两个 shell 脚本。第一个脚本根据收到的参数动态创建对第二个脚本的调用,然后执行该调用。

我的问题是第一个脚本获取的参数可能包含空格,因此我必须在调用 script2 时引用该参数。

这是问题的一个例子:

脚本1.sh:

#!/bin/sh
param=$1
command="./script2.sh \"$param\""
echo $command
$command

script2.sh:

#!/bin/sh
param=$1
echo "the value of param is $param"

当我运行时:

./script1.sh "value with spaces"

我得到:

./script2.sh "value with spaces"
the value of param is "value

这当然不是我需要的。

这里出了什么问题?

TIA。

编辑:

感谢有用的link,我找到了解决方案在 Tripleee 的评论中。在这里,以防它对任何人有帮助。

简而言之,为了解决这个问题,应该使用数组作为参数。

脚本1.sh:

#!/bin/sh
param=$1

args=("$param")
script_name="./script2.sh"
echo $script_name "${args[@]}"
$script_name "${args[@]}"

最佳答案

使用“$@”引用所有命令行参数并完整引用。

关于shell - 使用变量从另一个脚本调用 shell 脚本时如何引用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8399660/

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