使用空格作为包含“-”字符的分隔符来分割字符串

问题描述 投票:0回答:1

我想使用空格作为分隔符来拆分包含

-
作为第一个字符的字符串。但下面的代码似乎不起作用。如果我删除
-
字符,那么它会正确分割。这是脚本

#!/bin/bash

string="-e -/a/b/c/d"
arr=($string)
arrLen=${#arr[@]}
echo $arrLen
echo ${arr[0]} #prints empty
if [ $arrLen = 2 ] && [ ${arr[0]} = "-e" ]; then #this condition gets passed surprisingly
    echo "Hi ${arr[1]}"
fi

输出

2

Hi -a/b/c/d
bash
1个回答
0
投票

如果您有更复杂的需求或想要对分隔符进行更多控制,也可以使用 awk 或 sed 来分割字符串。

#!/bin/bash

string="-e -/a/b/c/d"

# Use awk to split by spaces
arr=($(echo $string | awk '{print $1,$2}'))

arrLen=${#arr[@]}
echo $arrLen
echo ${arr[0]} # should correctly print "-e"

if [ $arrLen = 2 ] && [ "${arr[0]}" = "-e" ]; then
    echo "Hi ${arr[1]}"
fi
© www.soinside.com 2019 - 2024. All rights reserved.