ksh変数の宣言と反復

ksh変数の宣言と反復

kshスクリプトを操作して理解する必要があります。変数が宣言される方法は、私が慣れていた方法とは異なります。

STA=${1:-blabla}

「1:-」が何を意味するのかよく分からない。次のループでこの変数宣言を使用できますか?

STA=${1:-blabla blabla2 blabla3}

ベストアンサー1

${var:-x}これは、「varが設定されていないか空の場合はxに置き換えます」を意味します。したがって、「ループ生成」の意味によって異なります。

分割してループを生成する場合は、$IFSそれを使用してループの変数を生成できます。しかし、それがあなたが望むものなら、ksh配列を使用することをお勧めします。

if [ "$#" -eq 0 ]; then
  set -A sta blabla blabla2 blabla3 # ksh88/pdksh/mksh/ksh93
  sta=(blabla blabla2 blabla3)      # ksh93/mksh
else
  sta=("$@") # use the positional parameters if provided
fi

for x in "${sta[@]}"; do [...]

おすすめ記事