shell程式設計筆記

2021-07-25 14:07:23 字數 2365 閱讀 3571

if [ 1 -eq 1 ] -a [ 2 == 2 ]; then echo "true"; elif [ 1 -lt 2 ] -o [ 3 -gt 4 ]; then echo "***" ; else echo "false"; fi  (> -gt;< -lt;>= -ge;<= -le;== -eq;!= -ne;-a &&; -o ||)

if [ -f 1.sh ] && echo "1.sh exists"

if [ ! -e 1.sh ];then echo "1.sh exist";fi (-e 檔案或目錄; -f 檔案 ;-d 目錄;-r 可讀;-x 可執行;-w 可寫 -h 

用來判斷檔案是否存在並且是乙個符號鏈結;-z 為空 )

case $x in

0)

echo "***"

;;

1)

echo "yyy"

;;

*)

echo "eee"

;;

esac

for f in `ls -d /etc/`

do

if  [ -d /etc/$f ]

then

echo "/etc/$f"

fi

done

while :

do

echo "ok"

sleep 20

done

sum()

s=`sum 1 2`

echo "$s"

echo "acbc" | wc -l

sh 1.sh abc efg;

$1=abc;

$2=efg;

$#=2;

$0=1.sh ;$?=1

echo "a=1 b=2 c=3 d=4" | awk ''  | awk -f'[=]' ''

sed -i 's/bc/yy/' 1.txt

date +%y-%m-%d  y :兩位年份 ; y:兩位年份 ;  m:月份 ;   d:日期 ;   h:時;   m:分;    s:秒 ;   s:時間戳(秒);w :周;f:年-月-日;t:時:分秒

date -d "+1 month" +"%f %t"

(sec,min,hour,day,week,month,year)

sh -x 1.sh

echo `expr 123 + 456`    ; echo "123+456"|bc;$[$a+$b];

a=1;

b=2;

echo `expr $a + $b`

a=1;

echo "$a"  輸出 1;

echo '$a'    輸出$a

單引號裡面是什麼就輸出什麼,雙引號裡面可以使用變數

echo `expr 123 + 456`  輸出579

反引號輸出裡面命令執行的結果

首先etc下的是所有使用者共有的配置檔案,~ 下的只屬於某個使用者

.bash_profile 在登陸的時候呼叫比如通過ssh 或 su -,.bashrc在開啟shell的時候呼叫,比如 bash命令或執行某個指令碼

"[[",是關鍵字,許多shell(如ash bsh)並不支援這種方式。

"["是一條命令, 與test等價,大多數shell都支援

[[ ... && ... && ...  ]] 和 [ ... -a ... -a ...] 不一樣,[[ ]] 是邏輯短路操作,而 [ ] 不會進行邏輯短路

[[ ... ]]進行算術擴充套件,而[ ... ]不做

[[...]]中"<"與">"不需轉義,

&&,|| 在[[...]]可直接使用[...]會報錯

在bash中,數字的比較最好使用 (( )),雖說可以使用 [[ ]],但若在其內使用運算子 >、>=、<、<=、==、!= 時,其結果經常是錯誤的,不過若在 [[ ]] 中使用 [ ] 中的運算子「-eq、-ne、-le、-lt、-gt、-ge」等,還尚未發現有錯。

反引號本身就對\進行了轉義,保留了本身意思,如果我們想在反引號中起到\的特殊意義,我們必須使用2個\來進行表示。

所以我們可以簡單的想象成反引號中:

\\ = \

$()中則不需要考慮\的問題,與我們平常使用的一樣:

\ = \

題外話: 反引號是老的用法,$()是新的用法,不管是在學習

測試中,還是在實際工作中,$()的用法都是被推薦的

shell程式設計筆記

第一天學習shell程式設計,自己做的筆記 test1 bin sh judge dir exist if d data 20140515 then mkdir p data 20140515 else echo this dir is exist,please exit fi bin sh sco...

Shell程式設計筆記

1,變數命名規則 your name runoob.com 注意,變數名和等號之間不能有空格,這可能和你熟悉的所有程式語言都不一樣。同時,變數名的命名須遵循如下規則 命名只能使用英文本母,數字和下劃線,首個字元不能以數字開頭。中間不能有空格,可以使用下劃線 不能使用標點符號。不能使用bash裡的關鍵...

shell 程式設計筆記

告訴系統用什麼指令碼進行編輯 常用 bin bash。在對變數進行賦值時,規避空格符。單雙引號的使用,單引號成對出現,且在單引號中不能使用變數,但可以在雙引號中使用單引號加變數的形式。例如 bin bash var jj help var xx var jj var ll var jj me ech...