1. 编写一个名为char.sh的脚本,功能如下(40分): a) 由用户输入一个字符串。 b) 统计字符串中字符的总个数、数字字符个数、大写字符的个数、小写字符的个数。最后输出相应结果。
时间: 2024-02-26 21:58:24 浏览: 55
好的,以下是 char.sh 的代码实现:
```bash
#!/bin/bash
echo "请输入一个字符串:"
read str
# 统计字符串中字符的总个数
char_num=${#str}
# 统计数字字符个数
digit_num=$(echo $str | sed 's/[^0-9]//g' | wc -c)
# 统计大写字符的个数
upper_num=$(echo $str | sed 's/[^A-Z]//g' | wc -c)
# 统计小写字符的个数
lower_num=$(echo $str | sed 's/[^a-z]//g' | wc -c)
echo "字符串中字符的总个数为:$char_num"
echo "数字字符个数为:$((digit_num-1))"
echo "大写字符的个数为:$((upper_num-1))"
echo "小写字符的个数为:$((lower_num-1))"
```
使用方法:
1. 将以上代码保存为 char.sh 文件;
2. 给 char.sh 文件添加执行权限:`chmod +x char.sh`;
3. 执行 char.sh 文件:`./char.sh`;
4. 根据提示输入字符串,即可输出相应结果。
注意事项:
1. 该脚本只能统计 ASCII 码中的字符,不支持 Unicode 字符;
2. 如果输入的字符串包含空格,需要用引号括起来,如:"hello world"。
相关问题
1、 编写一个名为char.sh的脚本,功能如下(40分): a) 由用户输入一个字符 b) 判断该字符的类型,如果是数字,则输出“Number!”;如果是字母(不区分大小写),则输出“Chars!”;否则,输出“Others!”
以下是char.sh脚本的代码:
```bash
#!/bin/bash
echo "Please input a character:"
read char
if [[ "$char" =~ ^[0-9]+$ ]]; then
echo "Number!"
elif [[ "$char" =~ ^[[:alpha:]]+$ ]]; then
echo "Chars!"
else
echo "Others!"
fi
```
脚本的解释如下:
1. `#!/bin/bash` 表示使用 bash 解释器执行该脚本。
2. `echo "Please input a character:"` 输出提示信息,让用户输入一个字符。
3. `read char` 读取用户输入的字符,存储到变量 `char` 中。
4. `if [[ "$char" =~ ^[0-9]+$ ]]; then` 判断变量 `char` 是否为数字,使用正则表达式 `^[0-9]+$` 匹配,如果匹配成功,则输出 "Number!"。
5. `elif [[ "$char" =~ ^[[:alpha:]]+$ ]]; then` 判断变量 `char` 是否为字母,使用正则表达式 `^[[:alpha:]]+$` 匹配,如果匹配成功,则输出 "Chars!"。
6. `else` 如果前面的条件都不满足,则输出 "Others!"。
7. `fi` 表示 if 语句结束。
运行脚本后,按照提示输入一个字符,脚本会输出相应的结果。
9. 编写一个Shell scripts,要求使用函数实现在指定的字符串中查找某个字符功能,如果字符串中包含该字符,则返回该字符所在的位置,否则返回-1。
可以使用如下的Shell脚本实现:
```sh
#!/bin/bash
# 定义函数,用于在字符串中查找某个字符
# 参数1:要查找的字符
# 参数2:要查找的字符串
function find_char() {
local char=$1
local str=$2
local i=0
local len=${#str}
# 遍历每个字符,查找目标字符
while [[ $i -lt $len ]]; do
if [[ "${str:$i:1}" == "$char" ]]; then
echo $i
return
fi
((i++))
done
# 如果没有找到目标字符,则返回-1
echo "-1"
}
# 测试函数
result=$(find_char "o" "Hello, World!")
echo $result # 输出6
result=$(find_char "x" "Hello, World!")
echo $result # 输出-1
```
在这个脚本中,定义了一个名为`find_char`的函数,用于在指定的字符串中查找某个字符。这个函数接受两个参数:要查找的字符和要查找的字符串。函数首先使用局部变量保存这两个参数,然后使用`len=${#str}`获取字符串的长度。接着,函数使用`while`循环遍历每个字符,如果找到目标字符,则使用`echo`命令输出该字符的位置并返回函数。如果没有找到目标字符,则在循环结束后输出-1并返回函数。
在测试函数中,分别调用`find_char`函数测试查找目标字符的位置。
阅读全文