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

String 在bash中更改变量中的字符串,string,bash,String,Bash,当我在bash脚本中赋值时 DATE=`date` 及 然后,今天的包含“Jul 2”,而不是“Jul{2 spaces}” 因此,我想将$TODAY中的第一个空格改为两个空格。 我该怎么做? 或者如何避免第一次错误分配到$TODAY?如果您只想7月2日,为什么不使用date选项 $ date "+%b %-d" Jul 2 如果您只想要7月2日,为什么不使用date选项 $ date "+%b %-d" Jul 2 如果希望当前月份后跟两个空格: date +'%b ' 或者,对于长

当我在bash脚本中赋值时

DATE=`date`

然后,今天的
包含
“Jul 2”
,而不是
“Jul{2 spaces}”

因此,我想将
$TODAY
中的第一个空格改为两个空格。
我该怎么做?

或者如何避免第一次错误分配到
$TODAY

如果您只想
7月2日
,为什么不使用
date
选项

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

如果您只想要
7月2日
,为什么不使用
date
选项

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

如果希望当前月份后跟两个空格:

date +'%b  '
或者,对于长名称:

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

DATE=$(date +'%b  ')
然后像这样打印出来

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

如果希望当前月份后跟两个空格:

date +'%b  '
或者,对于长名称:

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

DATE=$(date +'%b  ')
然后像这样打印出来

echo "$DATE is the current month, with more spaces\!"
  • 引用是关键
  • 使用
    $(…)
    而不是反勾号
  • 您将发现空间被保留:

    $ DATE="$(date)"
    $ echo "${DATE}"
    $ Tue Jul  2 11:43:21 GMT 2013
    $ TODAY=${DATE:4:7}
    $ echo "*${TODAY}*"
    $ *Jul  2 *
    
  • 引用是关键
  • 使用
    $(…)
    而不是反勾号
  • 您将发现空间被保留:

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

    使用date参数设置日期的格式

    date "+%b %_d"
    

    将用空格填充一天,给出您所处的2个空格

    使用日期参数设置日期格式

    date "+%b %_d"
    

    如果我这样做的话,我会用空格填充一天,给出你要找的2个空格。
    今天
    包含
    “Jul2”
    。如果你不希望空格被折叠,请确保在回显时将
    $TODAY
    放在引号中。当我这样做的时候,
    今天
    包含
    “Jul2”
    。如果您不想让空格折叠,请确保在回显时将
    $TODAY
    放在引号中。