簡體   English   中英

read -p 使用 korn shell ksh 返回“讀取:無查詢進程”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM