zoukankan      html  css  js  c++  java
  • 执行原因【菜鸟笔记】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
    执行和原因
    ---------------------------------

  • 相关阅读:
    Python基础之初始编码
    Excel图表编辑---表格移动,样式修改
    Python基础之Python的变量、常量
    刷题62. Unique Paths
    刷题56. Merge Intervals
    刷题55. Jump Game
    刷题53. Maximum Subarray
    刷题49. Group Anagrams
    刷题48. Rotate Image
    刷题46. Permutations
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3109100.html
Copyright © 2011-2022 走看看