我可以用bash做到这一点:
foo=bar
echo ${foo:0:2}
打印' ba' (' bar')的前两个字符。
现在我想对脚本/命令输出而不是变量执行相同操作,如下所示:
echo ${$(date):0:10}
然后我收到一个错误:"糟糕的替换"。
当然我可以使用中间变量:
foo=$(date)
echo ${foo:0:10}
但有没有办法直接这样做?
P.S。 date
命令只是一个示例,这不是以特定格式生成某些日期字符串。只是从任意shell命令输出中获取子字符串的一般概念。
答案 0 :(得分:3)
不,BASH语法不允许任何类型的嵌套。您可以使用cut
:
date | cut -c 1-10
Wed Jun 13
答案 1 :(得分:0)
替换date
:
$ date
Wed Jun 13 14:57:38 EEST 2018
您可以使用printf
:
$ printf "%(%a %b %d%n)T"
Wed Jun 13
man strftime
了解更多格式修饰符。
答案 2 :(得分:0)
如果您希望今天的日期输出Stream
(这是),那么
Wed Jun 13
请参阅系统上的$ date +'%a %b %e'
Wed Jun 13
和/或date
手册。