国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 财经| 亳州市| 申扎县| 项城市| 夏河县| 珠海市| 台中县| 望谟县| 玉溪市| 隆尧县| 吉隆县| 凉山| 宝清县| 兴山县| 新丰县| 闸北区| 二连浩特市| 顺义区| 双江| 西吉县| 五华县| 台安县| 洛浦县| 化德县| 江津市| 西吉县| 河北区| 神池县| 姚安县| 泽普县| 海伦市| 福安市| 牟定县| 武威市| 灵台县| 威海市| 酒泉市| 和顺县| 安乡县| 新营市| 化德县|