如何解决 KSH 中意外的“换行符”?

如何解决 KSH 中意外的“换行符”?

我正在开始使用 KSH 中的 GUI,所以这是我的第一个示例:

#! /usr/dt/bin/dtksh
  main()
  {
    XtInitialize TOPLEVEL dtHello DtHello "$@"

    XmCreateMessageDialog HELLO $TOPLEVEL hello \
            dialogTitle:"DtHello" \
            messageString:\
      "$(print "Hello\nWorld")"
    XmMessageBoxGetChild HELP $HELLO\
   DIALOG_HELP_BUTTON
    XtUnmanageChild $HELP
    XmMessageBoxGetChild CANCEL $HELLO\<\n>
   DIALOG_CANCEL_BUTTON
    XtUnmanageChild $CANCEL
    XtAddCallback $HELLO okCallback exit
    XtManageChild $HELLO
    XtMainLoop
   }

但是当我尝试启动我的脚本时,我得到了下一个:

gui.ksh: syntax error at line 15: `newline' unexpected

语法错误在这一行:

   DIALOG_CANCEL_BUTTON

这些是我的参考资料: 参考文献1 参考文献2

预先感谢您的任何帮助。

答案1

嗯...这太简单了,所以我只需要检查一下奥莱利博士

我不知道 KSH 对空格和表格敏感。无论如何,这里有一个解决方案(如果对某人有用)。

#! /usr/dt/bin/dtksh

main()
{
        XtInitialize TOPLEVEL dtHello DtHello "$@"

        XmCreateMessageDialog HELLO $TOPLEVEL hello \
                dialogTitle: "First Window" \
                messageString:"$(print "Hello\nWorld")"
        XmMessageBoxGetChild HELP $HELLO \
                DIALOG_HELP_BUTTON
        XtUnmanageChild $HELP
        XmMessageBoxGetChild CANCEL $HELLO \
                DIALOG_CANCEL_BUTTON
        XtUnmanageChild $CANCEL
        XtAddCallback $HELLO okCallback exit
        XtManageChild $HELLO
        XtMainLoop
}

谢谢。

相关内容