在bash中更改变量中的字符串

时间:2013-07-02 10:21:32

标签: string bash

当我在bash脚本中分配时

DATE=`date`

TODAY=${DATE:4:7}

然后TODAY包含"Jul 2 "而不是"Jul{2 spaces} "

所以我想将$TODAY中的第一个空格改为两个空格  我该怎么做?
或者我如何避免对$TODAY的第一次错误分配?

4 个答案:

答案 0 :(得分:2)

如果您只是想Jul 2,为什么不使用date选项?

$ date "+%b %-d"
Jul 2

答案 1 :(得分:1)

如果您想要当前月份后跟两个空格:

date +'%b  '

或者,对于长名称:

date +'%B  '

将命令分配给变量只需使用$()运算符,如下所示:

DATE=$(date +'%b  ')

并按照这样打印

echo "$DATE is the current month, with more spaces\!"

答案 2 :(得分:1)

  1. 报价是关键。
  2. 使用$(...)代替反对。
  3. 你会发现保留了空格:

    $ DATE="$(date)"
    $ echo "${DATE}"
    $ Tue Jul  2 11:43:21 GMT 2013
    $ TODAY=${DATE:4:7}
    $ echo "*${TODAY}*"
    $ *Jul  2 *
    

答案 3 :(得分:1)

使用日期参数格式化日期

date "+%b %_d"

将填补当天的空间,为您提供2个空格