2016-04-19 249 views
0

我有一個bash腳本,它檢查的Dropbox在bash腳本變量使用命令

#!/bin/bash 
while true 
do 
    echo Dropbox Status: 
    ~/bin/dropbox.py status 
    sleep 1 
    clear 
done 

的當前狀態,這將產生一個輸出,可以是這樣的。

Dropbox Status: 
Up to date 

但我希望看起來像這樣。因此,它是全部在一行

Dropbox Status: Update 

我試圖腳本,如

#!/bin/bash 
while true 
do 
    STATUS=~/bin/dropbox.py status 
    echo Dropbox Status: $STATUS 
    sleep 1 
    clear 
done 

然而,這僅僅是創建錯誤,如​​

有沒有辦法做我所追求的?

此外,如果它是公然明顯我很抱歉,因爲我是新來Bash Script

感謝您的幫助。

回答

1

使用printfcommand substitution

printf "Dropbox Status: %s\n" "$(~/bin/dropbox.py status)" 

或中間變量:

status=$(~/bin/dropbox.py status) 
printf "Dropbox Status: %s\n" "$status" 

還記得引用你的變量或他們將經歷word splitting

爲什麼STATUS=~/bin/dropbox.py status沒有工作?最新的情況是,該命令status被稱爲與環境變量STATUS設置爲~/bin/dropbox.py,排序相同的跑步:

_status=$STATUS 
export STATUS=~/bin/dropbox.py 
status 
export STATUS=_status 

但沒有所有的臨時變量

1

您需要存儲命令的結果在您的狀態變種

STATUS=$(~/bin/dropbox.py status)