执行原因【菜鸟笔记】Ubuntu系统shellscript中 关于for循环以及declare出错的原因

废话就不多说了,开始。。。

    问题描述:

    for的各种句式语法中,for((i=0;i<10;i++))这一句式,在bash中能够顺遂失掉执行

    如果用sh执行 *.sh,for的这一句式是无法执行的,会报错“Syntax error: Bad for loop variable”。

    后来在网上找原因的时候,发现有网友反应脚本中如果应用declare也会出现类似情况,

    即在sh中执行就报错“delcare: not found”,在bash中就可以畸形执行。

    

    知其所以然:

    每日一道理
书籍好比一架梯子,它能引领人们登上文化的殿堂;书籍如同一把钥匙,它将帮助我们开启心灵的智慧之窗;书籍犹如一条小船,它会载着我们驶向知识的海洋。

    键入which sh,找到Ubuntu的sh位于/bin/sh,然后 ls -l /bin/sh ,发现/bin/sh其实是一个硬链接,指向了dash。

    而dash虽然体积小速度快,兼容性好,但是响应的,在bash中能够顺遂执行的一些货色在dash中就不支持了。

    

    处理方法:

    简单只是训练或偶尔执行脚本的话,应用bash 执行 *.sh就是了;

    如果想彻底处理,就应用度娘给的方法:键入sudo dpkg-reconfigure dash,并选择否。即强制ubuntu不应用dash作为系统默许的shell。

    然后再次ls -l /bin/sh,就会看到“/bin/sh -> bash”了。处理!

文章结束给大家分享下程序员的一些笑话语录: 问:你觉得让你女朋友(或者任何一个女的)从你和李彦宏之间选一个,你觉得她会选谁?  
  答:因为李艳红这种败类,所以我没女友!

--------------------------------- 原创文章 By
执行和原因
---------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值