#!/bin/bash read -p "请输入序号" a if [[ $a =~ /[A-C]/ ]] then echo else echo "输入有误" exit fi case $a in A) echo "a" ;; B) echo "b" ;; C) echo "c" esac
时间: 2024-03-25 10:41:08 浏览: 36
这是一个Bash脚本,实现了输入字母A、B、C中的一个,然后根据选择输出对应的字母。不过这个脚本中的正则表达式写法不正确,应该改为`[[ $a =~ [A-C] ]]`。另外,在`echo`语句后面应该加上换行符`\n`,以使输出更加清晰。下面是修改后的脚本:
```bash
#!/bin/bash
read -p "请输入序号:" a
if [[ $a =~ [A-C] ]]; then
echo
else
echo "输入有误"
exit
fi
case $a in
A) echo "a\n"
;;
B) echo "b\n"
;;
C) echo "c\n"
;;
esac
```
输入A、B、C中的任意一个字母,即可输出对应的字母(注意输出后面有一个换行符)。如果输入其他字符,则会输出"输入有误"并退出脚本。
相关问题
能帮我写一篇基示shell,将字母序号转化为字母的代码
可以的,以下是一个简单的基示shell脚本,可以将字母序号转化为字母:
```
#!/bin/bash
echo "请输入字母序号:"
read num
if [ $num -lt 1 -o $num -gt 26 ]; then
echo "输入的字母序号不合法!"
else
letter=$(printf "%c" $(( $num + 64 )))
echo "对应的字母是:$letter"
fi
```
你可以将上述代码保存为一个文件,比如说 `letter.sh`,然后在终端中运行 `bash letter.sh` 来执行它。当程序提示你输入字母序号时,你可以输入一个介于 1 到 26 之间的整数,程序会将其转化为对应的字母并输出。如果输入的数字不合法,程序会给出相应的提示。
编写一个shell脚本,实现以下功能: 1.从用户输入中读取一个整数n,表示要打印的奇数个数字。2. 循环n次,从1开始打印奇数,直到打印出第n个奇数为止。3. 在每次打印奇数之前,先打印出一个提示信息
可以编写一个简单的shell脚本来实现这个功能。以下是一个可能的实现:
```
#!/bin/bash
# 获取用户输入的数字n
echo "请输入一个整数n:"
read n
if [[ "$n" =~ ^[0-9]+$ ]]; then
# 打印前n个奇数
for ((i=1; i<=n; i++)); do
echo "第 $i 个奇数是:$((2*i-1))"
done
else
echo "输入不是一个整数"
fi
```
这个脚本首先提示用户输入一个整数n,并使用 `read` 命令获取用户输入。然后,使用正则表达式判断用户输入是否为整数。如果是整数,使用一个 `for` 循环来打印前n个奇数。在每次循环中,使用 `$((2*i-1))` 表达式来计算当前奇数的值,并使用 `echo` 命令打印出当前奇数的序号和值。如果用户输入不是整数,输出错误提示信息。
可以将这个脚本保存为一个文件,例如 `odd_numbers.sh`,然后在终端中运行 `./odd_numbers.sh` 来执行。
阅读全文