Linux中编写 bshell编程,设计一个shell程序,判断命令行第一个参数的值;如果$1是一个数字,显示digital;小写字母,显示lower char;大写字母,显示upper char;如果$1等于Good,显示OK;否则,进入/tmp目录并显示other。
时间: 2023-10-02 22:12:09 浏览: 57
可以使用以下的bshell代码实现:
```
#!/bin/bash
if [[ $1 =~ ^[0-9]+$ ]]; then
echo "digital"
elif [[ $1 =~ ^[a-z]+$ ]]; then
echo "lower char"
elif [[ $1 =~ ^[A-Z]+$ ]]; then
echo "upper char"
elif [[ $1 == "Good" ]]; then
echo "OK"
else
cd /tmp
echo "other"
fi
```
这个程序首先使用正则表达式判断第一个参数是否为数字、小写字母、大写字母或者"Good"。如果是数字,则显示"digital";如果是小写字母,则显示"lower char";如果是大写字母,则显示"upper char";如果是"Good",则显示"OK";否则,进入/tmp目录并显示"other"。
相关问题
linux,编写一个shell程序,计算用户输入的所有命令行参数的和
在Linux中,编写一个简单的Shell脚本来计算用户输入的所有命令行参数之和,可以使用下面的bash脚本:
```bash
#!/bin/bash
# 使用"$@"变量来获取所有命令行参数
sum=0
for arg in "$@"
do
# 将每个参数转换为数字并累加
sum=$((sum + parseInt(arg)))
done
# 打印结果
echo "命令行参数之和为: $sum"
```
在这个脚本中,我们首先声明了一个变量`sum`用于存储总和,并遍历所有的命令行参数`$@`。`parseInt`函数在这里是一个假设,因为Bash本身并不支持直接的整数解析功能,所以在实际应用中,你需要一个实际的函数或者工具来将字符串转换成整数,比如`bc`命令。完整的脚本可能看起来像这样:
```bash
#!/bin/bash
sum=0
for arg in "$@"
do
sum=$(($sum + $(echo "$arg" | bc -l)))
done
echo "命令行参数之和为: $sum"
```
这里使用了`bc`命令来进行浮点数的计算。然后,在循环结束后,输出结果。
linux2、设计一个shell程序,判断命令行第一个参数的值;如果$1是一个数字,显示digital;小写字母,显示lower char;大写字母,显示upper char;如果$1等于Good,显示OK;否则,进入/tmp目录并显示other。
可以使用Shell中的正则表达式来判断$1的值类型,然后使用条件语句if-elif-else实现对应的操作。
以下是一个可能的实现:
```bash
#!/bin/bash
if [[ $1 =~ ^[0-9]+$ ]]; then
echo "digital"
elif [[ $1 =~ ^[a-z]+$ ]]; then
echo "lower char"
elif [[ $1 =~ ^[A-Z]+$ ]]; then
echo "upper char"
elif [ "$1" == "Good" ]; then
echo "OK"
else
cd /tmp
echo "other"
fi
```
这个脚本首先使用正则表达式判断$1的值类型,如果是数字、小写字母、大写字母或"Good",则分别输出对应的提示信息。否则,进入/tmp目录并显示"other"。注意,最好在数字和字母判断前加上^和$,以确保匹配整个字符串。