2011-12-02 20 views
3

大家好,我使用的是Ubuntu 11,我正在做一些shell腳本。 我現在唯一面臨的問題是「閱讀」顯示它的價值,我不知道它是如何發生的,因爲這是第一次。當我用「閱讀」,我可以看到它的價值! 這裏任何方式是我的代碼:我如何讓閱讀不會在Shell腳本中顯示它的值?

#!/bin/bash 

echo -n "Which file you want 2 store: " 
read fname 
echo -n "Do u want 2 delete file $fname in its current location? [Y\N]: " 
read ansr 

sudo tar -c -v -f The_Store.tar $fname 
sudo chmod 700 The_Store.tar 

if [ "$ansr" = "Y" ]; then 
rm $fname 
fi 

echo "Congrats, ur file been stored" 

用戶後「FNAME」的價值顯示出來回答這個問題:不要ü想在當前位置2刪除文件$ FNAME?任何人都可以幫助我們解決這個問題。

所有我想要的是保持 「FNAME」 隱藏的價值..

+0

兩種解決方案不起作用。請讓我們知道您的bash的版本,操作系統和版本。您是否通過使用-s或stty版本得到任何錯誤消息?如果是這樣,發佈它們。 – f4m8

+0

我的操作系統是OSX 10.7,Virtualbox 4.6,Ubuntu Linux 2.6.38-8-generic-pae。 – user895740

回答

5

bash手冊頁部分約read

-s靜音模式。如果輸入來自終端,則字符不會被回顯。

+0

它沒有工作:( – user895740

4

如果你的shell read的buildin不支持-s選項,您還可以使用stty命令:

echo "Which file you want 2 store: " 
stty -echo 
read fname 
stty echo 

echo "Do u want 2 delete file $fname in its current location? [Y\N]: " 
stty -echo 
read ansr 
stty echo 
+0

+ 1的便攜性! – plundra

+0

它沒有工作:( – user895740

+0

你是什麼意思?可以的外殼沒有找到stty命令,是找到的命令,但沒有認出它參數還是它只是失敗默默無聞?你的操作系統,外殼和你在用什麼終端? –