shell遍历字符串
时间: 2023-04-27 19:03:25 浏览: 1271
Shell遍历字符串可以使用for循环和字符串切片的方式,具体实现如下:
1. 使用for循环遍历字符串
```shell
str="hello world"
for i in ${str}; do
echo ${i}
done
```
输出结果为:
```
hello
world
```
2. 使用字符串切片遍历字符串
```shell
str="hello world"
len=${#str}
for ((i=;i<len;i++)); do
echo ${str:i:1}
done
```
输出结果为:
```
h
e
l
l
o
w
o
r
l
d
```
以上两种方法都可以用来遍历字符串,根据实际需求选择合适的方法即可。
相关问题
shell 遍历字符串数组并在遍历过程中与命令拼接成命令行字符串执行
假设有一个字符串数组 `args` 存储了需要执行的命令及其参数,可以使用Shell中的`for`循环遍历整个数组并将其与命令拼接起来,最后使用`eval`函数来执行完整的命令。具体的代码如下所示:
```shell
#!/bin/sh
args=("ls" "-l" "/home/user")
cmd=""
for arg in "${args[@]}"
do
cmd+=" $arg"
done
eval "$cmd"
```
上述代码首先定义了一个`args`数组,其中包含了需要执行的命令及其参数,然后定义了一个空字符串`cmd`,用于存储拼接后的命令。接下来使用`for`循环遍历整个`args`数组,将每个元素拼接到`cmd`字符串中。最后使用`eval`函数来执行完整的命令行字符串。
需要注意的是,在拼接命令行字符串时,每个参数前都需要添加一个空格,这样才能正确地拼接成完整的命令行字符串。
shell 切分字符串并遍历打印
可以使用 shell 的 for 循环和 cut 命令来实现字符串的切分和遍历打印。例如,假设要遍历打印字符串 "hello world" 中的每个单词,可以使用以下命令:
```
str="hello world"
for word in $(echo $str | cut -d " " -f 1-); do
echo $word
done
```
其中,cut 命令的 -d 参数指定分隔符为空格,-f 参数指定要提取的字段范围为 1 到最后一个字段。echo 命令将字符串输出到标准输出,然后通过 $() 将其作为参数传递给 for 循环,循环变量 word 依次取得每个单词,并通过 echo 命令打印出来。
阅读全文