helloworld.sh
## 輸出helloworld
echo
"hello world!"
addr="zhongguo shanghai"
## 輸出變數的值
echo
$addr
## 單引號與雙引號的區別
echo
"address:$addr"
## 輸出為:address:zhongguo shanghai
echo
'address:$addr'
## 輸出為:address:$addr
## 變數名在字串的前面時
name=tom
echo
"$name,hi!1"
## 這裡會將$nameehi當成乙個變數,所以輸出為: !2,取到的變數值為空,這時候需要使用下面的方式取值
echo
"$namehi!2"
echo
"$hi!3"
## 撤銷變數
unset name
echo
"$hi!4"
## 宣告靜態的變數
readonly age=18
## unset age 這句會報錯,因為age不能再改了
## 讓shell子程序訪問到本程序中的變數值,一下兩種方式,第二種方式開頭的"."相當於source,呼叫b.sh進行執行,
## b.sh中的內容為:#!bin/bash 換行 echo "b.sh---$addr"
source /root/b.sh
. ./b.sh
echo
"helloworld.sh---$addr"
## 呼叫function.sh中的函式
## 獲取hellorn的返回值
echo
"helloworld.sh---$retu"
b.sh
#!bin/bash
echo
"b.sh---$addr"
## read命令用於從控制台讀取輸入的資料,"[","]"兩邊必須有空格,"="兩邊必須有空格中如果直接寫了非空字元,即為true.什麼也不寫為false
## read空格-p空格"aaa"空格變數名
read -p "輸入你的使用者名稱:" name
printf
"**********===$**********==\n"
## 輸出
echo
"$name"
condition.sh
#!/bin/bash
## read命令用於從控制台讀取輸入的資料,"[","]"兩邊必須有空格,"="兩邊必須有空格中如果直接寫了非空字元,即為true.什麼也不寫為false
read -p "輸入你的使用者名稱:" name
printf
"**********===$**********==\n"
if [ $name = root ]
then
echo
"使用者:root"
echo
"hello,$,wolcome!"
elif [ $name = itcast ]
then
echo
"使用者:itcast"
echo
"hello,$,wolcome!"
else
echo
"hello,sb!"
fi##三元運算子[ condition ] && echo "true" || "false"
##當條件表示式為多個boolean表示式時
##方式一:[[ condition1 && condition2 ]]
##方式二:[ condition1 -a condition2 ] -a為and,-o為or
## 字串比較
##比較運算子 = != -z -n
##=相等,!=不相等,-z長度為0返回true,-n長度不為0返回true
## 數字比較
## -lt 小於
## -le 小於等於
## -eq 等於
## -gt 大於
## -ge 大於等於
## -ne 不等於
if [ 1 -ge 5 ]; then
echo ok;else
echo notok;fi
## 檔案判斷
## -d 是否為目錄
## -f 是否為檔案
if [ -f /root/b.sh ];then
echo ok;else
echo notok;fi
## -e 是否存在
## while
## case
## for
expression.sh
#!/bin/bash
## 運算子:計算(2 + 3) * 4 的值
## 方式一:分兩步計算
result=`expr 2 + 3`
echo
"2 + 3 = $result"
result=`expr $result \* 4`
echo
"5 * 4 = $result"
## 方式二:一步計算出結果,注意"\"的使用,運算子前後必須有空格
result=`expr \`expr 2 + 3\` \* 4`
echo
"(2 + 3) * 5 = $result"
## 方式三:用(())
result=$((1+1))
echo
"1 + 1 = $result"
result=$(((2+3)*4))
echo
"(2 + 3) * 4 = $result"
## 方式四:用
result=$[(2+3)*4]
echo
"(2 + 3) * 4 = $result"
function.sh
#!/bin/bash
##函式無引數無返回值的定義
hello
()## 呼叫函式
hello
## 有返回值的函式
hellorn
()## 呼叫
hellorn
## 獲取函式返回值
retu=$?
echo
"function.sh---$retu"
. ./helloworld.sh
## 有引數的函式
hellocan()"
echo
"引數11--$"
}## 呼叫
hellocan 123
4567
891000
2000
Shell程式設計 shell特性
linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...
Shell程式設計 Shell函式
shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...
Shell程式設計
1 建立指令碼 vi emacs等即可 bin sh 2 shell變數 對shell來講,所有的變數的取值都是乙個字串 shell是一種解釋性語言,變數無需事先定義 shell中的系統變數 程式命令列引數的數目 儲存前乙個命令的返回值 0 當前程式名 以 1 2 形式儲存所有輸入的命令列引數 以 ...