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

Ubuntu 22.04中Bash脚本read -s选项报错问题排查

问题原因及解决方法

出现 read: Illegal option -s 错误的核心原因是脚本实际运行的shell不支持-s选项。Ubuntu 22.04中默认的sh指向dash,而dash的read命令没有-s(静默输入)这个参数;但你在终端直接执行命令时用的是bash,bash的read支持-s,所以能正常工作。

可能的触发场景

  • 你用sh 脚本名.sh的方式运行脚本,这会忽略脚本开头的#!/bin/bash shebang,强制使用dash执行。
  • 虽然脚本有#!/bin/bash,但可能存在权限问题导致系统没有用指定的shell执行(不过这种情况较少见)。

解决方法

  1. 正确执行脚本:先给脚本添加可执行权限,然后直接运行:
    chmod +x your_script.sh
    ./your_script.sh
    
    这样系统会读取#!/bin/bash这一行,用bash来执行脚本。
  2. 显式指定bash运行:如果不想加权限,直接用bash命令运行:
    bash your_script.sh
    
  3. 避免用sh运行:不要再用sh your_script.sh的方式,因为这会调用不兼容的dash。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:22:15