【问题标题】:Why do I get `newline or ;' unexpected error message?为什么我得到'换行符或;'意外的错误信息?
【发布时间】:2013-06-20 13:40:05
【问题描述】:
#!/bin/sh
number=`who | wc -l`
case $number in
1)
    echo "Just you"
    ;;
2)
    echo "Company"
    ;;
3)
    echo "A Crowd"
    ;;
esac

我正在尝试学习案例陈述,但我不明白为什么我会在问题中收到特定的错误消息。要清楚,消息是 `newline 或 ;'出乎意料。它没有给我语法错误的行号。我确信有一个简单的答案。提前致谢。如果我可以更清楚,请告诉我。

【问题讨论】:

  • #!/bin/sh 或标签:ksh ?还有一件事:代码在我的 ubuntu 系统上与 /bin/sh 原样工作。但是无法在 solaris 上尝试。
  • 我的印象是没关系。我实际上正在使用 ksh,但是当我将其切换到 #!/bin/sh 时,我仍然收到错误消息。
  • 在 solaris 上,/bin/sh 是 bourne shell。显然它不喜欢案例陈述。继续使用/bin/ksh/usr/xpg4/bin/ksh(如果存在,可能是您系统上较新的ksh。祝你好运。

标签: shell unix solaris ksh case-statement


【解决方案1】:

在 Solaris 10 上,运行脚本时,我得到一个 $number 值,在 1 之前有一些空白字符,而不仅仅是 1 我认为 $number 值需要转换为数字。

【讨论】:

    猜你喜欢
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    相关资源
    最近更新 更多