今天在Ubuntu下调试代码,明明是正确的,却仍然报错,查了错误信息才知道:Ubuntu中默认不是bash,而是为了加快开机速度,使用了dash。

dash中需要严格的语法,而且与bash语法不同。例如,bash中定义函数是使用function关键字的(function foo() {}),但在dash中没有该关键字,直接使用foo(){}定义。我的错误就是这样因为有了function而没有通过。

注意:在sh文件首行定义的“#!/bin/bash”,指的是在(文件具有x权限的前提下),shell脚本使用的bash。

我给这个文件加上了执行权限,然后使用./filename.sh和bash filename.sh可以成功执行。只有在使用sh filename.sh下才会出错。

代码对于标准bash而言没有错,因为Ubuntu为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼。
解决方法是 取消dash
sudo dpkg-reconfigure dash
在选择项中选No,即可。

参考

https://blog.csdn.net/arthur503/article/details/38308961

转载于:https://www.cnblogs.com/z-x-y/p/10539683.html

ubuntu shell脚本出错 dash相关推荐

  1. ubuntu shell脚本弹窗小工具yad

    ubuntu shell脚本弹窗小工具yad 简介 安装 使用 选择文件夹/文件 输入文本 选择下拉菜单 小结 简介 yad是ubuntu下面的一个很有用的命令行工具,可以在shell脚本里弹窗给用户 ...

  2. linux循环显示系统时间,Ubuntu - shell脚本获取当前时间

    1. 系统当前时间 首先确认 Ubuntu 当前时间,可以在终端输入:date 输出如:Fri Oct 22 22:29:48 CST 2020 如果时间显示不是正确的时间,需要校正一下到当前时间:# ...

  3. [ Ubuntu ] shell脚本编程丨日积月累丨1. 循环执行命令n次

    #!/bin/bash for i in `seq 10` doecho 'Count: '${i}echo "hello1"echo "hello2" don ...

  4. [轻笔记]ubuntu shell脚本切换conda环境

    source /home/yourhostname/anaconda3/etc/profile.d/conda.sh # 关键!!! conda activate env_name

  5. java调用shell脚本并传递参数

    最近业务上需要java调用执行shell脚本进行一些业务处理,写了个demo,记录下. 主要代码 @RequestMapping("/copy/database")@Respons ...

  6. linux脚本出错仍执行后续脚本,crontab执行脚本出错

    crontab定时调用执行shell脚本出错(mailed 165 bytes of output but got status 0x004b#012) 使用系统自带的任务调度crontab 发现手动 ...

  7. ubuntu及shell脚本常用命令入门

    一.Shell命令 二.ubuntu软件安装方法 三.Ubuntu文件系统结构 四.ubuntu磁盘文件 五.Linux下常用的压缩格式 六.linux用户和用户组 七.Ubuntu/Linux文件权 ...

  8. Ubuntu双击运行Shell脚本

    1. 安装 dconf-editor sudo apt-get install dconf-editor 2. 启动dconf-editor,直接输入命令 dconf-editor 3. org-&g ...

  9. linux shell 语句出错自动退出 调试 检查 脚本

    许多人用shell脚本完成一些简单任务,而且变成了他们生命的一部分.不幸的是,shell脚本在运行异常时会受到非常大的影响.在写脚本时将这类问题最小化是十分必要的.本文中我将介绍一些让bash脚本变得 ...

最新文章

  1. 同向逆向、多车道线检测
  2. discuz二次开发笔记(一)------$_G全解析,discuz_g_PHP教程
  3. placeholder的兼容处理方法
  4. centos查看网络速率_CentOS 7查看网络带宽使用情况
  5. 春节档电影评分出炉:韩寒《四海》垫底仅有 5.6 分,他居然第一
  6. 输出指定个数所有枚举_【一天一大 lee】区间和的个数 (难度:困难) Day20201107
  7. linux 下的下载管理工具
  8. 汉王数据导入java环境,怎样把u盆内容导入汉王门禁考勤管理软件
  9. 戴尔服务器预装系统如何降级,在戴尔计算机上降级系统BIOS | Dell 中国
  10. 题目 1040: 实数的打印
  11. TensorFlow笔记(6) 单神经元分类
  12. java规则计算_亲属计算规则算法--java实现(关键算法摘要)
  13. 在react中使用swiper/react
  14. 电商教程,制作淘宝产品常见的风效果
  15. python爬虫可视化excel_Python爬虫以及数据可视化分析!
  16. PAT | 算法笔记 | 简单模拟
  17. DevEco studio工具栏的打开与隐藏
  18. Linux下搭建TPshop商城(阿里云)
  19. 一键加密:WPS(Wi-Fi Protected Setup,Wi-Fi保护设置)
  20. JAVA开发离线语音识别

热门文章

  1. oracle只有oradata恢复,如何恢复一个只有完好数据文件的数据库?
  2. echarts的legend显示不全_Echarts【1、数据过多导致显示不全分页,2、数据展示探讨分析】...
  3. pytorch Resnet
  4. 编程通用知识 乘法除法位移
  5. psql 时间日期操作符和函数
  6. e0266 cout 不明确_荐书 | 不正义的时代,识别不正义的多重面孔
  7. asteroids模板 游戏 java_在高级Java游戏中存储全局/静态变量的最佳方法是什么?...
  8. 各厂商服务器ESXI最高版本适配情况
  9. 云计算架构师分享:容器云在金融企业的落地方案 | 周末送资料(原题:某保险公司容器云PaaS平台建设实践经验分享)
  10. Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结