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

如何在调用Shell脚本时修改变量?附shell.sh示例

嘿,在调用Shell脚本时修改变量有好几种实用的方式,我给你整理了最常用的三种,每个都附上示例脚本和调用方法,一看就懂~

方法1:调用时直接给变量赋值(临时生效)

这种方式最直接,赋值的变量只会在当前脚本的执行环境中生效,不会影响你当前的Shell会话。

示例脚本 shell.sh

#!/bin/bash

# 使用传入的变量,若未传入则用默认值
GREETING=${GREETING:-"Hello, World!"}
USER_NAME=${USER_NAME:-"Guest"}

echo "$GREETING, $USER_NAME!"

调用方式&效果

  • 自定义变量调用:

    GREETING="Hi there" USER_NAME="Alice" ./shell.sh
    

    输出:Hi there, Alice!

  • 不传递变量(用默认值):

    ./shell.sh
    

    输出:Hello, World!, Guest!

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

如果需要传递多个有序的参数,用命令行位置参数($1、$2...)是个不错的选择,脚本里直接读取这些参数即可。

示例脚本 shell.sh

#!/bin/bash

# 读取命令行参数,$1是第一个参数,$2是第二个
# 若未传参则设置默认值
GREETING=${1:-"Hello, World!"}
USER_NAME=${2:-"Guest"}

echo "$GREETING, $USER_NAME!"

调用方式&效果

  • 传递参数调用:

    ./shell.sh "Hey" "Bob"
    

    输出:Hey, Bob!

  • 只传第一个参数:

    ./shell.sh "Good morning"
    

    输出:Good morning, Guest!

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

如果变量需要在多个脚本或进程间共享,或者你想提前设置好变量再调用脚本,可以用环境变量。

示例脚本 shell.sh(和方法1的脚本通用)

#!/bin/bash

GREETING=${GREETING:-"Hello, World!"}
USER_NAME=${USER_NAME:-"Guest"}

echo "$GREETING, $USER_NAME!"

调用方式&效果

  • 临时设置环境变量调用(仅当前脚本生效):

    export GREETING="Welcome"
    export USER_NAME="Charlie"
    ./shell.sh
    

    或者更简洁的写法:

    GREETING="Welcome" USER_NAME="Charlie" ./shell.sh
    

    输出都是:Welcome, Charlie!

  • 若环境变量已全局设置,直接调用脚本就能读取到对应值~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:12:50