#!@prefix@/bin/fish set -l from 1 set -l step 1 set -l to 1 switch (count $argv) case 1 set to $argv[1] case 2 set from $argv[1] set to $argv[2] case 3 set from $argv[1] set step $argv[2] set to $argv[3] case '*' printf (_ "%s: Expected 1, 2 or 3 arguments, got %d\n") seq (count $argv) return 1 end for i in $from $step $to if not echo $i | grep '^-\?[0-9]*\(\|.[0-9]\+\)$' >/dev/null printf (_ "%s: '%s' is not a number\n") seq $i return 1 end end echo "for( i=$from; i<=$to ; i+=$step ) i;" | bc