2011-02-13 206 views

回答

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

(請注意,您已將月份格式的字符%m換位。)

+3

使用回聲就沒有意義 - 它不會添加任何內容,因爲您只是給它一個字符串,然後再次捕獲相同的字符串。你可以做`x =「$(date +%Y)$(date +%m)」` – 2011-02-13 00:54:52

+0

@John Bartholomew,你是對的,這是一種習慣,因爲我傾向於直接回聲給sed等。 – rlibby 2011-02-13 01:08:21

0

分號在命令行上分離的命令。

date +%Y ; date +m% 

或者,如果你只是想運行的第二個命令,如果第一個成功,使用雙符號:

date +%Y && date +%m 

或者,如果你想同時運行兩個命令,混合它們的輸出不可預測(可能不是你想要的,但我想我是徹底的),使用單一的符號:

date +%Y & date +%m 
1

也許這樣?

#!/bin/bash 

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

echo "$x" 

...還糾正這似乎是在你傳遞給date第二陣子格式字符串轉置。

0
echo ´date +%Y´ ´date +m%´ 

注意反向音符(')

+1

除了你使用錯誤的字符。而`$()`是首選。 – 2011-02-13 00:57:14

5

在第二行,你要執行$x date +m%。此時,$ x將設置爲2011年。所以現在它試圖運行此命令:

2011 date +%m 

這不是你想要的。

你可以做這一點:

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

echo "$x $y" 

或者說:

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

echo "$x" 

或者乾脆用最後的日期格式直線距離:

​​
0
echo `date +%Y` `date +%m` 

又使OP的最小變化爲:

x=$(date +%Y) 
x="$x $(date +%m)" 
echo "$x" 
相關問題