【问题标题】:read -p returns "read: no query process" using korn shell kshread -p 使用 korn shell ksh 返回“读取:无查询进程”
【发布时间】:2014-09-22 15:34:53
【问题描述】:

创建了一个包含以下内容的简单 shell 文件:

read -p ThePrompt TheSomthing
echo $TheSomething

运行它,它会返回

-ksh[1]: read: no query process

我试过单引号,ThePrompt 周围的双引号,并且手册页特别说“-p”是使用提示,但它对我不起作用。谁能告诉我我做错了什么?谢谢!

【问题讨论】:

  • 你给出的语法是 bash,而不是 korn shell。
  • 是的,我现在注意到了。我发布了我的工作,我猜这就是我所需要的。感谢您的回复。

标签: linux ksh


【解决方案1】:

在 Ksh 中你可以使用这种格式:

echo "ThePrompt\c" read TheSomthing echo $TheSomething

【讨论】:

    【解决方案2】:

    我发现了一个词:

    echo -n '提示:' 读取输入1 echo -n '提示:' 读取输入2 . . .

    我不知道为什么 -p 不像手册页中描述的那样工作。如果有人有见解,请回复。

    谢谢!

    【讨论】:

    • read 在 ksh 中的正确语法由 @abacabadabacaba 给出。
    【解决方案3】:

    来自谷歌搜索的man page:

    -un 和 -p 选项分别导致从文件描述符 n 或当前协同进程(参见上面的协同进程中的 cmets)读取输入。如果使用 -s 选项,输入将保存到历史文件中。

    要使用提示,请改为:

    read TheSomething?'ThePrompt'
    

    【讨论】:

    • 什么是?在这种情况下做。我在谷歌搜索答案时遇到了难题。
    • @RussPetersen 请阅读手册页。我用我刚刚在 Google 上搜索过的有效链接更新了答案中的链接,尽管您自己也可以这样做。
    猜你喜欢
    • 2016-01-11
    • 2018-03-24
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 2016-12-07
    • 2011-02-17
    • 2013-09-04
    • 2022-01-08
    相关资源
    最近更新 更多