linux - 在 bash 脚本中使用条件检查字符串参数

标签 linux bash shell terminal sh

我正在尝试编写我的 shell 脚本 thing.sh 以便在使其成为可执行文件并使用单个字母“A”运行它时,如下所示:

$ ./thing.sh A

我得到输出

A 

如果参数 1 不是 A,我想要输出

Not A 

到目前为止,这是我的代码:

#!/bin/bash

if [ "$1" -eq "A"]
then echo "A"
else echo "Not A"
fi 

无论我输入什么,它都会返回,

./thing.sh: line 3: [:missing `]'
Not A

我正在尝试我希望用一个或几个字母检查某物并将其与字母 A 进行比较;有人可以告诉我我缺少什么才能让它发挥作用吗?谢谢

最佳答案

更短的呢:

#!/bin/bash

[[ $1 == A ]] && echo "A" || echo "not A"

?

和初学者版本(相同的逻辑):

#!/bin/bash

if [[ $1 == A ]]; then
    echo "A"
else
    echo "not A"
fi

正如 Scott 所说,您有一个语法错误(缺少空格)。

解释

关于linux - 在 bash 脚本中使用条件检查字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763608/

相关文章:

linux - 查找固定长度的文件

linux - 使用 shell,如何跳到 for 循环中的下一个元素?

bash - 如何使用 Ansible 创建新分区

linux - 如何在 Linux 上使用 mail 命令附加文件?

macos - 在 OS X 上安装 GCC 4.7.1

python - 使用 top 生成每个内核的 Linux CPU 信息报告

regex - 句子中的 Sed 或 Awk 或 Perl 替换

java - 通过 Java 执行 SSH(使用基于 key 的身份验证)

bash - 使用 lftp 执行动态命令 - 多个命令

linux - 使用部分名称搜索用户