我的代码:

    #!/bin/sh
    #filename:choose.sh
    read choose
    [ "$choose" == "y" -o "$choose" == "Y" ] && echo "Yes" && exit 0
    [ "$choose" == "n" -o "$choose" == "N" ] && echo "No"  && exit 0
    echo "Wrong Input" && exit 0

但当我执行

    sh ./choose.sh

提示我

   [: 4: n: :Unexpected operator
   [: 5: n: :Unexpected operator

我的bash脚本有错误吗?

推荐答案

你的bash字 playbook 没有错.但您使用的是sh,它的语法不太广泛;)

所以,改为跑bash ./choose.sh:)

Linux相关问答推荐

PERF显示不应该执行指令的内核的用户空间周期

X86_64程序集中的分段故障:系统调用问题

在树莓派内核中找不到arch/arm/kernel/calls.S

不带空格的字符串连接形成文件路径

为什么我在从 Linux 通过 telnet 发送 Ctrl-C 后停止接收数据?

/usr/local/bin/ 中Collection的权限被拒绝

使用 RPATH 但不使用 RUNPATH?

为什么这个命令会杀死我的 shell?

如何在 UNIX 上的 $PATH 中转义冒号 (:)?

是否可以在 Linux x86 GAS 程序集中创建没有系统调用的线程?

禁用内存地址的随机化

如何在 Ubuntu 12.04 中更改 Jenkins 安装的端口号

将以前忽略的目录添加到 Git 存储库

将原始数据发送到 TCP 服务器的 Linux 工具

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

ldconfig 错误:使用 Linux 加载程序时不是符号链接

在 Linux / Mono 上运行 ServiceStack 的最佳方式是什么?

cat、grep 和 cut - 翻译成 python

如何获取 GNU Makefile 中使用的 shell 命令的退出状态?

`os.symlink` 与 `ln -s`