[英]read -p returns "read: no query process" using korn shell ksh
創建了一個簡單的 shell 文件,其中包含:
read -p ThePrompt TheSomthing
echo $TheSomething
運行它,它返回
-ksh[1]: read: no query process
我試過單引號,ThePrompt 周圍的雙引號,手冊頁特別說“-p”是使用提示符,但它對我不起作用。 誰能告訴我我做錯了什么? 謝謝!
在Ksh中,您可以使用以下格式:
echo "ThePrompt\\c" read TheSomthing echo $TheSomething
在Google 手冊頁中 :
-un和-p選項分別導致從文件描述符n或當前協同進程讀取輸入(有關此注釋,請參見上面的協同進程)。 如果使用-s選項,則輸入將保存到歷史記錄文件中。
要使用提示,請改寫以下內容:
read TheSomething?'ThePrompt'
我發現一個字:
echo -n'提示:'讀取input1 echo -n'提示:'讀取input2。 。 。
我不知道為什么-p不能如手冊頁中所述工作。 如果有任何見解的人,請回復。
謝謝!
很抱歉再次提出這個問題,但我在 KSH 中執行了我的 shell 腳本,所以我處於同樣的困境,直到我提出這個問題。
我捕獲單個字符的解決方案:
$> echo -e "My prompt: \c" ; read -n 1 -s -r FOO ; echo -e "\b"
My prompt:
$> echo $FOO
d
$>
對於更長的字符串,從讀取命令中刪除“-n 1”:
$> echo -e "My prompt: \c" ; read -s -r FOO ; echo -e "\b"
My prompt:
$> echo $FOO
this is my entry!!!
$>
我希望這就是你要找的……干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.