首先考虑到使用source
, 但用source
也是实际上也是执行了一遍脚本,如何通过其他方式调用变量呢?
# a.sh
var1=3
# b.sh 这个脚本中想使用 var1 变量
bash a.sh
echo $var1
1
ALLLi 2020-04-01 19:45:34 +08:00 via Android
export
|
2
CallMeReznov 2020-04-01 19:57:13 +08:00
可以设置成环境变量
|
3
MeteorCat 2020-04-01 20:05:07 +08:00 via Android
写本地文件,另外脚本读
|
4
css3 OP |
5
oeagut 2020-04-01 22:08:36 +08:00 via iPhone
记得之前看教程,一个很傻瓜的办法就是 echo 出来,变通一下
|
6
fanhed 2020-04-01 22:27:08 +08:00
echo 出来, 需要考虑转义
然后其他脚本捕获后直接 eval |
9
yangbonis 2020-04-02 00:26:29 +08:00 via iPhone
变量都是运行时的,你想访问就得解决同步的问题。source 也是一样的,规定了顺序而已。
|
11
wd 2020-04-02 06:18:51 +08:00 via iPhone
你去搜下 subshell
|
12
secsilm 2020-04-02 06:43:10 +08:00 via Android
需求简单的话就写本地文件,这样方便修改和管理
|
13
aaa5838769 2020-04-02 09:24:47 +08:00
最好写到本地文件中
|
14
tankren 2020-04-02 10:02:04 +08:00
第一个 shell 结尾把要传递的变量 export 到环境变量然后执行第二个 shell
|
15
FH0 2020-04-02 13:00:57 +08:00
var1=$var1 bash b\.sh
|
16
ps1aniuge 2020-04-02 13:31:03 +08:00
问:shell 脚本中的变量,如何跨脚本使用?
答:用 win,linux 通用的 powershell,并使用$global:abc=1 问:首先考虑到使用 source, 但用 source 也是实际上也是执行了一遍脚本,如何通过其他方式调用变量呢? 答: 本质上来讲,shell 脚本这块天生残废,没有按照跨脚本设计,也就没有跨脚本的功能。 本质上来讲,无法实现跨脚本使用变量。 $global:abc=1 在 powershell 中叫做全局变量。 本质上来讲 shell,和 py 里没有全局变量。看清楚,py (本质!)没有全局变量。 ps 第 14 课:变量的作用域 我在我写的课程里,有详细讲。 powershell 脚尊神殿。群=183173532 。入群索要教程。 |
17
sunziren 2020-04-02 14:10:49 +08:00
嗯,学到了学到了。
|