国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

shell '++'運算符出錯和let: not found錯誤的解決

2024-06-28 16:01:10
字體:
來源:轉載
供稿:網友

今天將公司服務器上的腳本拿到自己筆記本上運行時出錯,set -x追蹤發現是在一個變量的自增運算時發生錯誤,出錯部分的腳本大概是這樣:

#! /bin/sh  param=0  echo $((param++))錯誤信息:

$ ./test.sh   ./test.sh: 3: ./test.sh: arithmetic exPRession: expecting primary: "param++"將腳本中的(())換成let命令后依然出錯:

#! /bin/sh  param=0  let param++echo $param錯誤信息:

$ ./test.sh   ./test.sh: 4: ./test.sh: let: not found腳本在服務器上正常運行,但是在自己筆記本上出錯,那么肯定是筆記本上的運行環境與服務器不同造成的。我的筆記本裝的是Ubuntu 16.04,而服務器上是centos,這也許就是問題的突破點。后來經過查找,發現Ubuntu中/bin/sh鏈接默認指向的是dash shell,而服務器上指向的是bash shell。dash是一個小巧的shell,他的功能自然也就沒有bash強大,上述問題就是有與dash shell不支持++運算和let命令造成的。

找到了原因,解決方案就非常簡單了。通過在腳本中直接指明使用bash shell即可,將腳本首行改為:

#! /bin/bash# 腳本內容# ... ... 或者直接將/bin/sh指向bash即可解決問題,在終端輸入命令:

$: sudo ln -sf /bin/bash /bin/sh


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 农安县| 皋兰县| 雷波县| 柳江县| 北辰区| 黄山市| 西华县| 蒙山县| 石嘴山市| 海城市| 体育| 易门县| 东安县| 镇沅| 浮山县| 二手房| 商城县| 论坛| 义乌市| 马关县| 普陀区| 同心县| 任丘市| 含山县| 武宁县| 宝兴县| 财经| 南丰县| 襄城县| 岑巩县| 普洱| 怀仁县| 安泽县| 宜兰市| 故城县| 巧家县| 崇仁县| 华安县| 沧源| 池州市| 大渡口区|