linux - 在多个数字上显示特定数字

标签 linux bash

如何在更长的图形长度上显示数字? 这是一个小脚本:

#!/bin/bash
#Increment until proper folder name is found

VarAdd=0
VarDate=$( date +%F )

mkdir -v 2016-01-26-00{0..9}        # Testing script

if [ -d /.../"$VarDate-00$VarAdd" ]; then
    while [ -d /.../"$VarDate-00$VarAdd" ]; do
        (( VarAdd++ ))
    done
    mkdir -v "$VarDate-00$VarAdd"
fi

我的问题是,在第 11 个循环中,下一个创建的文件夹将是 2016-01-26-0010。我怎样才能让它像 2016-01-26-010 一样显示? 提前致谢!

最佳答案

使用带有填充的printf来格式化字符串:

$ echo $(printf '%s-%04d' 2016-01-26 9)
2016-01-26-0009

$ echo $(printf '%s-%04d' 2016-01-26 11)
2016-01-26-0011

$ echo $(printf '%s-%04d' 2016-01-26 111)
2016-01-26-0111

关于linux - 在多个数字上显示特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35024633/

相关文章:

linux - 按日期排序查找命令

linux - 为什么 ptrace 显示 32 位 execve 系统调用具有 EAX = 59,即 64 位调用号? 32 位系统调用如何在 x86-64 上工作?

linux - 外壳返回 "PuTTYPuTTYPuTTY..."

java - 将 SHA-512 哈希从 Java 转换为 Bash

linux - bash脚本flock()锁定并启动服务

linux - 在 Linux 服务器中查找并保存 SAS-Studio 程序的当前目录

c - 对UDP套接字使用shutdown()

bash - 如何根据来自 curl 的 HTTP 状态代码分支 shell 脚本?

python - 使用bash运行python脚本

java - Ant 公然忽略 JAVA_HOME 环境变量