早起不洗头 2024-03-26 19:14 采纳率: 0%
浏览 5

shell脚本中,注释的问题

原本可以正常运行的shell脚本,在使用<<! ! 的方式注释掉之后,会报:行15: * : 语法错误: 期待操作数 (错误符号是 "* ") 的错误

原先的shell脚本是这样的


```bash
read -p "请输入大于20的数:" num

if [ $num -gt 20 ]
then
    echo $(( $num * $num ))
else
    echo "太小了"
fi



现在我对原先的脚本进行注释,编写了新的脚本,结果运行的时候会出现报错

if who|grep "^$1"
then
    echo "欢迎你 $1"
else
    echo "你走开 $1"
fi



<<!
read -p "请输入大于20的数:" num

if [ $num -gt 20 ]
then
    echo $(( $num * $num ))
else
    echo "太小了"
fi
!



运行结果变成这样

[root@localhost scripts]# ./wjh.sh wewew
20240326日 星期二 19:13:28 CST
你走开 wewew
./wjh.sh:行15: *  : 语法错误: 期待操作数 (错误符号是 "*  ")
[root@localhost scripts]# 



有没有大佬知道什么问题,网上搜不到,呜呜呜呜呜
  • 写回答

2条回答 默认 最新

  • 关注

    早起不洗头 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    根据你提供的信息,问题发生在使用<<! ! 的方式注释掉一段代码后运行新的脚本时出错。这是因为在shell脚本中,使用<<! ! 注释掉代码时,其中的部分被解释器认为是一个命令,而不是注释。因此,在解释器尝试执行这些注释代码时,由于代码本身是无意义的,所以会出现语法错误。

    为了解决这个问题,你可以尝试以下解决方案:

    1.使用#来添加注释:在shell脚本中,使用#符号来注释掉代码是最常用的方式。可以将<<! ! 的方式注释掉的代码替换为#进行注释。修改后的脚本如下:

    read -p "请输入大于20的数:" num
    
    if [ $num -gt 20 ]
    then
        echo $(( $num * $num ))
    else
        echo "太小了"
    fi
    
    # 注释部分,可以使用#来注释掉
    #read -p "请输入大于20的数:" num
    
    #if [ $num -gt 20 ]
    #then
    #    echo $(( $num * $num ))
    #else
    #    echo "太小了"
    #fi
    

    2.使用多行注释符号:在shell脚本中,使用:<</* /的方式可以实现多行注释,并且不会被解释器执行。你可以将注释部分的代码用:<</ */注释掉。修改后的脚本如下:

    read -p "请输入大于20的数:" num
    
    if [ $num -gt 20 ]
    then
        echo $(( $num * $num ))
    else
        echo "太小了"
    fi
    
    :<</* */
    read -p "请输入大于20的数:" num
    
    if [ $num -gt 20 ]
    then
        echo $(( $num * $num ))
    else
        echo "太小了"
    fi
    /* */
    

    请注意,无论使用#注释还是:<</* /注释,都要确保注释符号(#或:<</ */)单独占据一行,并且紧随其后的注释内容也单独占据一行。这样才能正确注释掉一段代码。

    希望以上解决方案对你有帮助!如有问题请随时追问。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月26日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站