3

私はまだ Snow Leopard を使用しているので (わかっています...)、これが OS/X の新しいバージョンのいずれかで修正されている場合は許してください。

for i in `seq 1 100` ; do
  cat /whatever > $i.txt ;
done

GNUツールをインストールすればできると思っていましたが、どうやらそうではないようです。

4

4 に答える 4

3

私のMacでは、これらの両方が機能します(OS X 10.8.5)

Andreas-Wederbrands-MacBook-Pro:~ raven$ for i in {1..10}; do echo $i; done
1
2
3
4
5
6
7
8
9
10
Andreas-Wederbrands-MacBook-Pro:~ raven$ for i in `seq 1 10`; do echo $i; done
1
2
3
4
5
6
7
8
9
10
于 2013-11-20T16:29:31.257 に答える
2

Snow Leopard では、次のjotような順次データを生成できるコマンドを使用できますseq(詳細については、man ページを参照してください)。

$ jot 5
1
2
3
4
5
$ jot 3 5
5
6
7
于 2013-11-20T16:47:46.437 に答える
2

などのツールは必要ありませんseq-- bash (ksh や zsh など) には構文が組み込まれています。

# bash 3.x+
for ((i=0; i<100; i++)); do
  ...
done

...または、bash 2.04+、zsh、および ksh93 の場合:

i=0; while ((i++ <= 100)); do
   ...
done

...または、絶対にPOSIX準拠のシェルの場合:

while [ $(( ( i += 1 ) <= 100 )) -ne 0 ]; do 
  ...
done

bash は などの展開もサポートし{0..100}ていますが、エンドポイントとして変数をサポートしていませんが、for ループ構文はより柔軟です。

于 2013-11-20T16:51:01.673 に答える