2015-08-31 73 views
0

之後在終端執行的代碼打開一個文本編輯器,並顯示loop.txt:的bash腳本不打開文本編輯器

if [ -f loopy.txt ]; then 
rm loopy.txt 
touch loopy.txt 
for i in $(seq 1 10) 
do 
echo $i line added >> loopy.txt 
done 
xdg-open loopy.txt 

如果我運行它作爲一個腳本,文本編輯器沒有打開。誰能告訴我爲什麼不呢?

韓國社交協會, 羅伯特

+3

嘗試縮進你的代碼,請大家看看:http://www.shellcheck.net/ – Cyrus

+0

該代碼的絕大部分可以用一行來代替:'printf的「%d線添加\ n」 $ (seq 1 10)> loopy.txt'。 – chepner

+0

感謝那肯定縮短了代碼。仍然不回答我的問題,雖然 –

回答

1

您的腳本無法運行,因爲它是。 您忘記了「if」子句後面的「fi」。

if [ -f loopy.txt ]; then 
    rm loopy.txt 
    touch loopy.txt 
fi # <----- you forgot that 
for i in $(seq 1 10) 
do 
    echo $i line added >> loopy.txt 
done 
xdg-open loopy.txt 
+0

是的,謝謝我複製我的代碼時錯過了它。 –