2011-05-08 116 views
0

我寫了一個小腳本來模擬某人在屏幕上輸入用戶輸入。bash腳本中的換行解釋

只要沒有換行符,它效果很好。我似乎無法弄清楚如何改變我的腳本來完成這項工作,而且我知道它必須簡單。

如果有人有更好的腳本編寫方式,我也可以進行完整的重構。

#!/bin/bash 
#Displays input as if someone were typing it 

read the_input_line 

while [ -n "$the_input_line" ] 
     do 
       printf "%c" "$the_input_line" 
       sleep .1 
       the_input_line=${the_input_line#?} 
done 
+0

我應該澄清一下 - 我認爲這是一個讓它搞砸的換行符。如果你做了類似的事情(該程序稱爲打字機),它會在換行符上打斷:ls -la |打字機 – Kevin 2011-05-08 15:17:23

回答

4

您的代碼只讀取一行。這遍歷所有行。

#!/bin/bash 
#Displays input as if someone were typing it 

while read the_input_line 
do 
    while [ -n "$the_input_line" ] 
    do 
    printf "%c" "$the_input_line" 
    sleep .1 
    the_input_line=${the_input_line#?} 
    done 
    printf "\n" 
done 
+0

是的。這很簡單。我嘗試了很多奇怪的黑客,但並沒有想到要這樣做一個嵌套循環。非常酷,感謝很多傢伙。 – Kevin 2011-05-08 15:30:39