编写一个Shell scripts,要求使用函数实现在指定的字符串中查找某个字符功能,如果字符串中包含该字符,则返回该字符所在的位置,否则返回-1。
时间: 2024-02-06 13:09:24 浏览: 77
以下是一个简单的Shell脚本,它使用函数来实现查找某个字符在字符串中的位置的功能:
```shell
#!/bin/bash
# 定义查找函数
find_char() {
local string=$1
local char=$2
local position=-1
for (( i=0; i<${#string}; i++ )); do
if [[ "${string:i:1}" == "$char" ]]; then
position=$i
break
fi
done
echo "$position"
}
# 测试查找函数
string="hello world"
char="o"
position=$(find_char "$string" "$char")
echo "The position of '$char' in '$string' is $position."
```
在这个脚本中,我们定义了一个名为`find_char`的函数。该函数接受两个参数:待查找的字符串和要查找的字符。然后,我们使用一个`for`循环遍历字符串的每个字符,如果找到了要查找的字符,则记录该字符在字符串中的位置,并立即退出循环。最后,函数输出该字符在字符串中的位置。
在脚本的末尾,我们使用`string`和`char`变量来测试`find_char`函数,并将返回的位置值存储在`position`变量中。最后,我们输出该字符在字符串中的位置。
相关问题
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`函数测试查找目标字符的位置。
阅读全文