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

如何在Bash脚本中判断输入是否匹配指定字符串参数

问题解决办法

核心原因

  • Bash 中函数的位置参数和脚本全局的位置参数是相互独立的,你在调用myFunction时没有把脚本接收到的命令行参数传递给函数,函数内部的$1、$2默认都是空值,自然匹配不到--log
  • 你示例的调用命令只给脚本传了1个--log参数,就算把参数传入函数,函数内判断$2也不可能匹配到值,应该改为判断$1

修复后代码

#!/bin/bash

# lets call this script.sh

myFunction() {
# 匹配函数接收的第一个参数
if [[ $1 == '--log' ]]; then
    echo "hello world" >> file.log
else
    echo "Unknown argument"
fi
}

# 调用函数时将脚本收到的所有参数传递进去
myFunction "$@"

验证效果

执行bash script.sh --log后,即可在当前目录下生成file.log文件,成功写入hello world内容。如果后续需要支持多参数传入的场景,再对应调整函数内的位置参数判断序号即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:12:02