shell學習錯誤之二

2021-08-26 11:31:05 字數 802 閱讀 4200

今兒繼續學習shell script的相關知識,當然了還是按照鳥哥的基礎書來看!在實驗又是遇見錯誤:

root@zhou:/scripts# sh sh013.sh [: 21: 20111201: unexpected operator sh013.sh: 23: declare: not found sh013.sh: 24: declare: not found sh013.sh: 25: arithmetic expression: expecting primary: "-"

首先,我懷疑自己的**寫錯了,仔細檢視**沒有錯,上網查後大多數人都遇到了這樣的問題,說是用bash來進行編譯就好了!!

試過以後果然啊!!!可是感到很不解,我在shell指令碼中第一行明明寫上了:#!/bin/bash,難道就沒有用嗎???網上的解釋是這樣的:

這些不是注釋符,而是說明下面的指令碼是在什麼shell下面執行的,並且以該shell環境來執行指令碼。linux中的shell有多種型別,其中最常用的幾種是bourne shell(sh)、c shell(csh)和korn shell(ksh)。三種shell各有優缺點。bourne shell是unix最初使用的shell,並且在每種unix上都可以使用。bourne shell在shell程式設計方面相當優秀,但在處理與使用者的互動方面做得不如其他幾種shell。linux作業系統預設的shell是bourne again shell,它是bourne shell的擴充套件,簡稱bash,與bourne shell完全向後相容,並且在bourne shell的基礎上增加、增強了很多特性。

#!/bin/bash 這句話我試過了,如果去掉還是老樣子,根本沒有影響的。

ucos 學習之二

os initmisc void os ext volatile int32u ostime 使用volatile的關鍵字,是為了 volatile的作用 作為指令 關鍵字,確保本條指令不會因 編譯器的優化而省略,且要求每次直接讀值.簡單地說就是防止 編譯器對 進行優化.比如如下程式 xbyte 2...

PHP學習之二

mysql 資料庫函式庫 本函式庫共有 32 個函式 先看一下下面幾個 mysql close 關閉 mysql 伺服器連線。mysql connect 開啟 mysql 伺服器連線。mysql error 返回錯誤資訊。mysql query 送出乙個 query 字串。mysql select ...

任務學習之二

1 a.tolist 將array轉換為列表 2 today account.current date today date.fromdatetime account.current date 向前移動乙個工作日 yesterday cal.advancedate today,period yest...