【问题标题】:multiline ksh command just goes to a new line多行 ksh 命令只是转到新行
【发布时间】:2014-12-08 10:26:49
【问题描述】:

我对 KSH 很陌生,我在记事本中创建了一个小的 5 行回显代码,将其复制并粘贴到 putty 中,但是当我按下回车键时,我得到的只是这个“>”,本质上是一个新行,用于出于某种原因,它似乎没有运行代码。我试过使用“.”、“exit”、“;”,但它给我的只是一个以“>”开头的新行......我如何让多行代码在 KSH 中运行?

代码如下:

testvar1=$(bteq << EOF 2>&1
    .LOGON db/user,pass
    DATABASE schema:
    SEL CURRENT_DATE;
    .LOGOFF;
    .QUIT;
    .EXIT
    EOF)
echo "The date is: " $testvar1

【问题讨论】:

  • 向我们展示您尝试运行的行。您可能有一个不匹配的引号或其他东西使 shell 认为一行正在换行到下一行,因此显示行继续字符“>”。按 Ctrl-C 退出 go 回到提示符。

标签: unix ksh


【解决方案1】:

如果有意续行,则需要通过在行尾输入反斜杠来转义回车。这样就去掉了回车的特殊含义(向shell发送命令):

$ echo "Hello \
> World"
Hello World
$

【讨论】:

  • 反斜杠似乎不起作用...虽然 Crtl+C 有助于返回提示符...
  • here-document 的结束 EOF 需要从该行的第一个字符开始。我对 bteq 命令不熟悉,所以我不知道它在语法上是否正确。
  • 提示 - 不要假设您的 bteq 命令有效。仅在使用命令的返回码测试失败后才显示它的输出。
猜你喜欢
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多