Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell msysgit:gitbash错过了'seq'命令。还有别的选择吗?_Shell_Msysgit_Seq_Gnu Coreutils - Fatal编程技术网

Shell msysgit:gitbash错过了'seq'命令。还有别的选择吗?

Shell msysgit:gitbash错过了'seq'命令。还有别的选择吗?,shell,msysgit,seq,gnu-coreutils,Shell,Msysgit,Seq,Gnu Coreutils,我在我的模拟shell脚本中使用了很多。Git bash没有提供它,因此我正在寻找替代方案 Git bash支持的命令中是否有seq的替代方法 当前解决方案:根据Ignacio的回答,我编写了一个小助手脚本,它为我的遗留脚本提供了一个简单的seq函数。我还注意到,当对变量使用echo{1..10}时,需要使用eval来获得序列输出,而不是未展开的表达式: a=0; b=5 eval echo {$a..$b} # outputs 0 1 2 4 5 echo {$a..$b} #

我在我的模拟shell脚本中使用了很多。Git bash没有提供它,因此我正在寻找替代方案

Git bash支持的命令中是否有
seq
的替代方法

当前解决方案:根据Ignacio的回答,我编写了一个小助手脚本,它为我的遗留脚本提供了一个简单的
seq
函数。我还注意到,当对变量使用
echo{1..10}
时,需要使用
eval
来获得序列输出,而不是未展开的表达式:

a=0; b=5
eval echo {$a..$b}  # outputs 0 1 2 4 5
echo {$a..$b}       # outputs {0..5}
这是我新的
seq.sh

#!/bin/bash
# check for the real seq and export a new seq if not found
# import this script via `source ./seq.sh`
#
hasSeq(){
  which seq >/devnull 2>&1
}

mySeq(){
    case $# in
        1) eval echo {1..$1};;
        2) eval echo {$1..$2};;
        3) echo "seq(3) not supported" 1>&2;;
    esac
}

if ! hasSeq; then
    seq(){
        mySeq $*
    }
fi

hasSeq || export -f seq

假设bash的版本足够新,可以使用大括号扩展

$ echo {1..16}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

或者

假设bash的版本足够新,可以使用大括号扩展

$ echo {1..16}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

或者

顺便说一句:我不喜欢使用我的同事也必须安装的其他coreutils二进制文件。顺便说一句:我不喜欢使用我的同事也必须安装的其他coreutils二进制文件。