5

私はbashスクリプトを使用しており、たとえばURLを含む文字列を分割しようとしています:

str=firsturl.com/123416 secondurl.com/634214

したがって、これらの URL はスペースで区切られています。IFSコマンドを使用して文字列を分割しましたが、うまく機能しています。2 つの URL を次のように繰り返すことができます。

for url in $str; do
    #some stuff
done

しかし、私の問題は、この分割に含まれるアイテムの数を取得する必要があることです。このstr例では、2 を返す必要がありますが、これを使用すると:

${#str[@]}

文字列の長さを返します(40現在の例の場合)。取得する必要がある場合、文字数を意味します2

また、配列を反復する前に要素の数が必要なため、カウンターを使用した反復は機能しません。

助言がありますか?

4

4 に答える 4

0

$* をエコーする関数を作成すると、分割するアイテムの数が提供されます。

count_params () { echo $#; }

次に、 $str をこの関数に渡すと、結果が得られます

str="firsturl.com/123416 secondurl.com/634214"
count_params $str
于 2013-06-28T04:10:36.217 に答える