You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从一个Bash脚本跳转到另一个并传递变量执行任务?

实现跨Bash脚本传递变量的几种方法

下面是针对你的需求给出的具体实现示例,包含三种常用的跨脚本传参方式:

方法1:通过命令行参数传递

这是最直接的传参方式,适合传递简单的数值或字符串。

myscript_1.sh 代码:

#!/bin/bash

# 模拟脚本1的任务逻辑,最终得到变量a的值
a=100

# 完成任务后,调用脚本2并将a作为参数传递
./myscript_2.sh "$a"

myscript_2.sh 代码:

#!/bin/bash

# 接收脚本1传递的第一个参数,赋值给变量a
a="$1"

# 执行后续计算操作
result=$((a * 2))
echo "计算结果:$result"

使用方式:

  1. 给两个脚本添加执行权限:chmod +x myscript_1.sh myscript_2.sh
  2. 运行脚本1:./myscript_1.sh

方法2:通过环境变量传递

适合需要传递多个变量,或者希望子脚本直接继承变量的场景。

方式A:先导出环境变量再调用

myscript_1.sh 代码:

#!/bin/bash

a=200

# 将a导出为环境变量,让后续调用的脚本2可以读取
export a
./myscript_2.sh

方式B:临时传递环境变量(不影响当前shell)

myscript_1.sh 代码:

#!/bin/bash

a=200

# 仅在调用脚本2时临时设置环境变量
a="$a" ./myscript_2.sh

myscript_2.sh 代码:

#!/bin/bash

# 直接读取环境变量a的值
result=$((a + 50))
echo "计算结果:$result"

方法3:通过临时文件传递

适合变量内容较大(比如多行文本),或者需要持久化传递的场景。

myscript_1.sh 代码:

#!/bin/bash

a=300

# 将变量值写入临时文件
echo "$a" > /tmp/temp_var.txt

# 调用脚本2
./myscript_2.sh

myscript_2.sh 代码:

#!/bin/bash

# 从临时文件读取变量值
a=$(cat /tmp/temp_var.txt)

# 执行计算操作
result=$((a / 3))
echo "计算结果:$result"

# 可选:用完后删除临时文件
rm /tmp/temp_var.txt

内容的提问来源于stack exchange,提问作者Tricia279

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:59:58