Juv*_*uve 1 shell msysgit gnu-coreutils seq
我在我的模拟shell脚本中经常使用seq.Git bash不提供它,因此我正在寻找替代方案.
是否有替代方案seq是Git bash支持的命令的一部分?
当前解决方案:根据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}
Run Code Online (Sandbox Code Playgroud)
这是我的新篇章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
Run Code Online (Sandbox Code Playgroud)
假设bash的版本足够新,你可以使用大括号扩展.
$ echo {1..16}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Run Code Online (Sandbox Code Playgroud)
或者...... 你知道......
| 归档时间: |
|
| 查看次数: |
2077 次 |
| 最近记录: |