将两个shell命令合并到shell中的一个输出中

Jon*_*Jon 4 bash shell

我试图将多个命令组合成一个输出.

#!/bin/bash

x=$(date +%Y)
x=$($x date +m%)

echo "$x"
Run Code Online (Sandbox Code Playgroud)

这回来了

./test.sh:line 4:2011:命令未找到

rli*_*bby 6

x=$(echo $(date +%Y) $(date +%m))
Run Code Online (Sandbox Code Playgroud)

(请注意,您已经转换了字符%m月份格式.)

  • 使用echo是没有意义的 - 它没有添加任何东西,因为你只是给它一个字符串然后再次捕获相同的字符串.你可以做`x ="$(date +%Y)$(date +%m)"` (3认同)

puz*_*zle 5

在第二行,您正在尝试执行$x date +m%.此时,$ x将设置为2011年.所以现在它正在尝试运行此命令:

2011 date +%m
Run Code Online (Sandbox Code Playgroud)

这不是你想要的.

你可以这样做:

x=$(date +%Y)
y=$(date +%m)

echo "$x $y"
Run Code Online (Sandbox Code Playgroud)

或者那个:

x=$(date +%Y)
x="$x $(date +%m)"

echo "$x"
Run Code Online (Sandbox Code Playgroud)

或者直接使用最终日期格式:

x=$(date "+%Y %m")
echo $x
Run Code Online (Sandbox Code Playgroud)