1

私はシミュレーションシェルスクリプトでseqをよく使用します。Git bashはそれを提供しないので、私は代替手段を探しています。

seqGit bashでサポートされているコマンドの一部に代わるものはありますか?

現在の解決策:Ignacioの回答に基づいて、レガシースクリプトに単純なseq関数を提供する小さなヘルパースクリプトを作成しました。また、変数で使用する場合は、展開されていない式の代わりにシーケンス出力を取得するためにecho {1..10}を使用する必要があることにも気づきました。eval

a=0; b=5
eval echo {$a..$b}  # outputs 0 1 2 4 5
echo {$a..$b}       # outputs {0..5}

これが私の新しいseq.shです:

#!/bin/bash
# check for the real seq and export a new seq if not found
# import this script via `source ./seq.sh`
#
hasSeq(){
  which seq >/devnull 2>&1
}

mySeq(){
    case $# in
        1) eval echo {1..$1};;
        2) eval echo {$1..$2};;
        3) echo "seq(3) not supported" 1>&2;;
    esac
}

if ! hasSeq; then
    seq(){
        mySeq $*
    }
fi

hasSeq || export -f seq
4

1 に答える 1

5

bashのバージョンが十分に新しいと仮定すると、ブレース拡張を使用できます。

$ echo {1..16}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

または...あなたが知っている...

于 2012-11-28T16:48:47.157 に答える