bash – 将零添加到单个数字变量

前端之家收集整理的这篇文章主要介绍了bash – 将零添加到单个数字变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试在可变量之前添加零,如果小于10并创建所述目录。我似乎无法使零正确添加。导致制造02.1.2011,02.2.2011等。
i=0
for i in {01..31}
do
    if $i > 10
        then
            mkdir $path/02.0$i.2011
        else    
            mkdir $path/02.$i.2011
    fi
done
您可以用以下替换整个批次:
for i in 0{1..9} {10..31} ; do
    mkdir $path/02.$i.2011
done

而不需要启动任何外部进程(除了循环体中可能的内容)。

这可能不是很重要,因为mkdir不是那些你在紧密循环中做的很多事情之一,但是如果你在bash中写了很多快速而脏的代码,这一点很重要。

当您进行数十万次操作时,过程创建很昂贵,因为我的某些脚本偶尔会完成:-)

例如,您可以看到它在行动:

pax$ for i in 0{7..9} {10..12}; do echo $i; done
07
08
09
10
11
12

而且,如果您最近有足够的bash版本,那么它将会满足您的主要数位要求:

A sequence expression takes the form {x..y[..incr]},where x and y are either integers or single characters,and incr,an optional increment,is an integer. When integers are supplied,the expression expands to each number between x and y,inclusive. Supplied integers may be prefixed with 0 to force each term to have the same width. When either x or y begins with a zero,the shell attempts to force all generated terms to contain the same number of digits,zero-padding where necessary.

所以,在我的Debian 6框中,使用bash版本4.1.5:

pax$ for i in {07..11} ; do echo $i ; done
07
08
09
10
11

猜你在找的Bash相关文章