Bashスクリプトはパラメータを表示し、そのカウンタを生成します。

Bashスクリプトはパラメータを表示し、そのカウンタを生成します。

したがって、次のタスクを実行するスクリプトを作成する必要があります。

./scriptname.sh 1 2 4 carrot apple
1. 1
2. 2
3. 4
4. carrot
5. apple

どんなに多くのパラメータを提供しても、そのパラメータはカウンタに表示されます。

私はこれを試しましたが、うまくいきません。

#!/bin/bash
k=0;
while [$k -lt $#]
do
    k=$((k+1))
done
echo "$k"
exit 0

ベストアンサー1

$#whileループは渡されたパラメータに触れず、パラメータ自体ではなくパラメータ全体の数に変数を使用します。

私にこの任務が与えられたら、私は次のようにします。

#!/bin/bash

# Get no of args
noArgs=$#
# Save arguments in array
myArr=("$@")

# Loop the array
for ((i=0; i<$noArgs; i++)); do
    echo $((i+1)). ${myArr[$i]}
done

exit 0

いくつかの例は次のとおりです。

./printArgs.sh foo bar baz
1. foo
2. bar
3. baz

./printArgs.sh 1 2 napalm death
1. 1
2. 2
3. napalm
4. death

./printArgs.sh seasons in the abyss
1. seasons
2. in
3. the
4. abyss

おすすめ記事