|
|
1
1
尝试:后
|
|
|
2
1
如果使用带有“.”的脚本来设置环境变量,则该脚本中声明的任何变量都将自动成为全局变量,并传递到调用shell的会话中。 有三种方法可以隔离变量并使其非持久化: 1。初始化变量 如果使用单个变量捕获用户选择,例如dbselection,无论是在命令行上传递还是在交互模式下输入,那么您可能希望通过将该变量初始化为空字符串来启动脚本;
——何处 “交互模式” 是您定义的获取用户选择的过程。当然,您的方法或函数名可能会有所不同。 2。未设置变量 如果使用临时变量来注册用户选择(如上面的dbselection),则可能需要在脚本末尾取消设置变量;
三。定义局部变量而不是全局变量 如果您使用的是临时变量,那么最好在本地(使用类型集)而不是全局定义它们,这样它们就不会持久于定义它们的函数之外。
这样,ksh将为您处理变量,而不是自己显式地取消设置它。 |
|
|
3
0
另外,您正在运行代码“source”,这意味着当您再次运行脚本时,脚本中声明的所有环境变量仍然存在。 尝试 /CHDB 而不是 . CHDB |
|
|
4
0
我想出了一个办法来解决这个问题。我补充说
对于其他有同样问题的人,
|
|
|
Sunny1985 · 根据函数的输出休眠while循环 8 年前 |
|
|
00__00__00 · 在子文件夹中应用所有隐藏的更改 9 年前 |
|
|
user1342645 · 计算变量名时打印awk内的变量 9 年前 |
|
|
Sidd Singal · 使用双引号执行Linux命令 9 年前 |
|
|
mtryingtocode · 日期出现ksh脚本语法错误 9 年前 |
|
|
Andrew Courtenay · 交互式shell脚本-递归太深 9 年前 |