gpt4 book ai didi

Bash:导出未将变量正确传递给父级

转载 作者:行者123 更新时间:2023-11-29 09:21:39 34 4
gpt4 key购买 nike

在子脚本中导出的变量在父脚本(a.sh)中是未定义的:

#!/bin/bash
# This is the parent script: a.sh
export var="5e-9"
./b.sh var
export result=$res; # $res is defined and recognized in b.sh
echo "result = ${result}"

子脚本 (b.sh) 如下所示:

#!/bin/bash
# This is the child script: b.sh
# This script has to convert exponential notation to SI-notation
var1=$1
value=${!1}
exp=${value#*e}
reduced_val=${value%[eE]*}
if [ $exp -ge -3 ] || [ $exp -lt 0 ]; then SI="m";
elif [ $exp -ge -6 ] || [ $exp -lt -3 ]; then SI="u";
elif[ $exp -ge -9 ] || [ $exp -lt -6 ]; then SI="n";
fi

export res=${reduced_val}${SI}
echo res = $res

如果我现在使用 ./a.sh 运行父级,输出将是:

res = 5n
result = 4n

所以这里存在一些舍入问题。有人知道为什么以及如何解决它吗?

最佳答案

要访问 b.sh 中的变量,请改用 source :

source b.sh var

它应该给你想要的。

关于Bash:导出未将变量正确传递给父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785374/

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