如何使 bash 脚本不区分大小写?

How can I make a bash script case insensitive?

我正在编写一个脚本,根据他们输入的名字输出关于我朋友的一些信息,但在脚本中我将 if/then 的条件设置为他们的名字大写。有什么方法可以让他们输入小写字母,但输出仍然相同?

在bash中,您可以使用,,参数扩展来小写变量值:

#! /bin/bash

read -p Name: name
case ${name,,} in
    (john) echo Hi John! ;;
    (jane) echo Hallo Jane! ;;
    (jack) echo Long time no see, Jack! ;;
    (*)    echo "I don't know you." ;;
esac

您可以尝试使用全大写的单词作为格,例如:

# name="Viktor"; echo "${name^^}"
VIKTOR

所以,写这样的东西:

#!/bin/bash

echo "Type your name"
read name
capitalName=$(echo "${name^^}")
case "${capitalName}" in
...
esac