我是shell脚本的新手,我需要一些关于以下问题的帮助:
我有脚本。它有一个全局变量,定义如下:
ARCHIVE_USER=user1
然后,在方法中,我正在更改这些变量的值:
test_function(){
ARCHIVE_USER=user2
test_function2()
}
test_function2(){
echo ARCHIVE_USER
}
我希望test_function2
打印“user2”而不是“user1”,因为在test_function
我已将变量值重命名为“user2”,但是当我运行它时,它总是给我“user1”作为输出。我在这里做错了什么?
答案 0 :(得分:2)
您应该在同一环境中定义这些功能。
如果您将它们放在不同的脚本中,请按/path/to/script_1.sh
和/path/to/script_2
运行它们。它们不会相互影响。因为它们在不同的环境中运行。
您应该阅读有关subshell/subprocess
的更多信息。
答案 1 :(得分:1)
此脚本按预期工作,即打印“B”。
#!/usr/bin/bash
TEST=A
test_a()
{
TEST=B
test_b
}
test_b()
{
echo $TEST
}
test_a
所以,我的问题是你如何调用test_function()?