aboutsummaryrefslogtreecommitdiffhomepage
path: root/seq.in
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-01-23 07:07:56 +1000
committerGravatar axel <axel@liljencrantz.se>2006-01-23 07:07:56 +1000
commit3e3541a05a4d76d76250d31368cb6d67fa248246 (patch)
tree23339e7748004c07af52c3fd170f5c99f71e8481 /seq.in
parenta824646d61e9b4c19d2661a9ba0eef1720106973 (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-xseq.in37
1 files changed, 37 insertions, 0 deletions
diff --git a/seq.in b/seq.in
new file mode 100755
index 00000000..5906acb0
--- /dev/null
+++ b/seq.in
@@ -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