diff options
author | 2006-01-23 07:07:56 +1000 | |
---|---|---|
committer | 2006-01-23 07:07:56 +1000 | |
commit | 3e3541a05a4d76d76250d31368cb6d67fa248246 (patch) | |
tree | 23339e7748004c07af52c3fd170f5c99f71e8481 /seq.in | |
parent | a824646d61e9b4c19d2661a9ba0eef1720106973 (diff) |
Add simple fallback implementation of seq command, installed automatically on systems which lack the regular seq command
darcs-hash:20060122210756-ac50b-f09a50f61137acef18f0d2be16e2556b2cdea921.gz
Diffstat (limited to 'seq.in')
-rwxr-xr-x | seq.in | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -0,0 +1,37 @@ +#!@prefix@/bin/fish + +function seq -d "Print a sequnce of numbers" + + 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 + +end |