2010-05-02 65 views
2

第一次在這裏,因爲我終於開始學習編程。無論如何,我只是想每一秒鐘在這裏打在納秒的時間,我有這樣的:每秒鐘上市時間作爲Bash腳本

#!/usr/bin/env bash 

while true; 
do 
date=(date +%N) ; 
echo $date ; 
sleep 1 ; 
done 

現在,簡單地得到最新的一串,這不是我想要的。哪裏不對?我的學習相當混亂,所以我希望如果真的很簡單,你會原諒我的。此外,我確實設法罰款,這工作的提示:

while true ; do date +%N ; sleep 1 ; done 

但這顯然不能作爲一個腳本?

編輯,如果有人看到這個:啊,這確實解決了我的錯誤。我注意到你沒有添加一個;那是因爲我只定義了一個變量?另外,你能解釋一下美元的功能嗎?我認爲這是爲了調用變量。而且我看到上面的這一行確實可以作爲一個腳本來工作;我曾預計日期的輸出不會被放在屏幕上。

+0

你忘了問題。 – 2010-05-02 03:33:27

+0

「但是,這顯然不能作爲一個腳本。」爲什麼不? – Stephen 2010-05-02 03:45:06

+2

實際上,腳本中不需要任何分號 - 只有當您將兩條命令放在同一行時才需要它們。至於'$',根據後面的內容做了一堆不同的事情:'$ var'和'$ {var}'展開一個變量,'$(command)'運行一個命令並替換它的輸出, (僅在bash中)'$((expr))'計算一個數學表達式。 – 2010-05-02 07:35:32

回答

5

變化

date=(date +%N) ; 

date=$(date +%N) 
0

可以 「`」(反引號)之間附上您的命令了。 例如:

date=`date +%N` 

問候

+0

避免反引號!改用'$(...)'。 – 2013-06-26 06:56:16

1

這個版本應該工作

#!/bin/bash 

while true; do 
date=$(date +"%N") 
echo Current date is $date 
sleep 1 
done 
相關問題