shell指令碼
命令通過乙個程式檔案執行時,該程式被稱為shell指令碼或shell程式。shell指令碼中有一系列的命令或命令語句,這些命令、變數和流程控制語句等有機結合起來就是乙個功能強大的shell指令碼。
指令碼開頭
#!/bin/bash(推薦) 或#!/bin/sh(#!稱為幻數,確定哪個程式來解釋指令碼中的內容。#必須在頂行,不在則為注釋)。
bash與sh的區別:sh是乙個鏈結檔案,指向bash,所以在linux中,sh與bash是一樣的。
如果指令碼的開頭不指定直譯器,則需要指定對應的直譯器來執行指令碼,如:bash test.sh 或 python test.py
指令碼注釋
跟在#後面的一行內容表示注釋。用來對指令碼進行說明,注釋部分不會被執行,僅僅給人看的作用。可自成一行或跟在命令的後面。
單行注釋:
多行注釋:
指令碼的執行
當shell指令碼以非互動的方式執行時,會先查詢系統環境變數env,該變數指定了乙個環境檔案(通常是.bashrc),然後從該環境變數開始執行,當讀取了env檔案後,shell才開始執行指令碼中的內容。
bash script-name或sh script-name(推薦,指令碼沒有x許可權或者沒有指定直譯器下可用)
path/script-name 或 ./ script-name(全路徑或當前路徑下執行,需要執行許可權+x)
source script-name 或 . script-name(想獲取指令碼中的變數內容,以這種方式執行)
基本規範與習慣
1.開頭指定指令碼直譯器,如:#!/bin/bash
2.開頭加上版本版權等資訊,如:# 時間 # 作者 # **** #指令碼功能 #版本(可配置vim編輯器自動載入以上資訊,方法是修改~/.vimrc配置檔案)
3.指令碼中盡量不要用中文注釋(哪怕用拼音)
4.指令碼以.sh結尾作為拓展名
5.**書寫優秀習慣
①成對的內容一次寫出來
②[ ]兩端要有空格,如:[ 123 ]
③流程控制語句一次書寫完,再新增內容,防止出錯
6.通過縮排,讓**更易讀
shell指令碼的基本知識
指令碼中命令的直譯器 記錄命令執行的過程和執行邏輯,以便以後重複執行 指令碼可以批量處理主機 指令碼可以定時處理主機 bin bash 幻數 1 手動在環境中開啟指定直譯器 sh script.sh 2 直接在當前環境中執行shell中的命令不開啟新的shell sourece script.sh ...
shell基本知識
shell型別 函式 主過程要呼叫才能執行 多行注釋 或 單行注釋 bin bash echo abcdefg.syshello syshello echo start.syshello echo exit.fi 結束標誌 grep ls l grep root awkls l awk ls l a...
shell 基本知識
shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面 當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作 系統的回應和輸出的資訊也由shell處理,然後顯示在使用者的螢幕上 簡單的說,當命令或者...