shell 遍历字符串数组并在遍历过程中与命令拼接成命令行字符串执行
时间: 2024-03-19 09:43:33 浏览: 300
假设有一个字符串数组 `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 中,可以使用循环遍历多个字符串数组,并将它们拼接成一个新的字符串数组。以下是一个示例代码:
```bash
# 定义两个字符串数组
array1=("hello" "world")
array2=("how" "are" "you")
# 定义一个空的字符串数组
result=()
# 循环遍历数组并拼接
for i in "${array1[@]}" "${array2[@]}"; do
result+=("$i")
done
# 输出结果
echo "${result[@]}"
```
输出结果为:`hello world how are you`
在循环中,将每个元素拼接到空的字符串数组 `result` 中,最后输出 `result` 数组即可。注意在输出数组时需要使用 `${result[@]}`,这样才能正确输出数组中所有元素。
shell 字符串与多个字符串数组变量拼接成字符串
可以使用拼接符号 `+` 来将多个字符串拼接成一个字符串。例如:
```bash
string1="hello"
string2="world"
result=$string1$string2
echo $result
```
输出结果为:`helloworld`
如果要将多个字符串数组变量拼接成一个字符串,可以使用循环遍历数组并拼接。例如:
```bash
array1=("hello" "world")
array2=("how" "are" "you")
result=""
for i in "${array1[@]}" "${array2[@]}"; do
result="$result$i"
done
echo $result
```
输出结果为:`helloworldhowareyou`
阅读全文