mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-13 21:44:16 +00:00
The seq fallback implementation is a shellscript, not a function
darcs-hash:20060123113648-ac50b-d6be198177d3b822b4e5270a70064f764ecf3cf7.gz
This commit is contained in:
parent
250d20bfa8
commit
bb079f5446
1 changed files with 25 additions and 29 deletions
54
seq.in
54
seq.in
|
@ -1,37 +1,33 @@
|
|||
#!@prefix@/bin/fish
|
||||
|
||||
function seq -d "Print a sequnce of numbers"
|
||||
set -l from 1
|
||||
set -l step 1
|
||||
set -l to 1
|
||||
|
||||
set -l from 1
|
||||
set -l step 1
|
||||
set -l to 1
|
||||
switch (count $argv)
|
||||
case 1
|
||||
set to $argv[1]
|
||||
|
||||
switch (count $argv)
|
||||
case 1
|
||||
set to $argv[1]
|
||||
case 2
|
||||
set from $argv[1]
|
||||
set to $argv[2]
|
||||
|
||||
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 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
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue