shell指令碼基礎

2021-08-15 01:17:13 字數 2409 閱讀 6719

shell定義:

shell是命令解析器,將使用者的輸入的指令轉化為機器可以執行的程式。

和c語言不同,指令碼有自己的語法。

比較常用的格式是:#!/bin/bash或者#!/bin/sh

如:這是乙個判斷輸入字元型別的程式

#!/bin/bash

read key

case "$" in

[a-z]) echo "upperletter";;

[a-z]) echo "lowerletter";;

[0-9]) echo "number";;

*) echo "error";;

esac

終端[root@localhost c]# ./case.sh 

tupperletter

如:#!/bin/bash

tmp="hello"

#echo="helloworld"

#echo $tmp

#echo $1       ($1$2對應終端./檔名.sh後面的參量)

#echo $2        (echo作為輸出函式)

#echo $3

#echo $*         (所有引數輸入)

#echo $#

for dir in $1 $2 $3 $4 $5  (dir依次等於$1$2等)

domkdir $dir                 (建立乙個dir對應參量的目錄)

cd $dir                      (進入目錄)

touch $dir                  (建立dir對應參量同名的檔案)

echo "hello $dir">$dir  (將hello賦給dir)

cd ..                    (退出目錄)

done                  (結束)

終端輸入:

[root@localhost c]# ./shell.sh  11 22

[root@localhost c]# ls

11  a1     author:  const.c  hello    hello.sh  if.c      moshou    pash     quyu    scanf.c   sizeof    strlen    strlen.c.c  switch.c

22  a.out  case.sh  file     hello.c  if        jisuan.c  moshou.c  pash.sh  quyu.c  shell.sh  sizeof.c  strlen.c  switch

[root@localhost 22]# ./22

bash: ./22: 許可權不夠

[root@localhost 22]# chmod 777 22

[root@localhost 22]# cat 22 (顯示檔案22中的內容)

hello 22 (說明hello新增成功)

例:#!/bin/bash

path=$1

if [ -z $path ]; then      (判斷是否為空)

echo "error"

exit                     (退出程式)

fiif [ -d $path ]; then        (判斷是否為乙個目錄)

echo "dir"

elif [ -f $path ]; then       (判斷是否為乙個檔案)

echo "file"

fi在終端輸入:

[root@localhost c]# ls

11  a1     author:  const.c  hello    hello.sh  if.c      moshou    pash     quyu    scanf.c   sizeof    strlen    strlen.c.c  switch.c

22  a.out  case.sh  file     hello.c  if        jisuan.c  moshou.c  pash.sh  quyu.c  shell.sh  sizeof.c  strlen.c  switch

[root@localhost c]# ./pash.sh if     (判斷if的屬性)

file

例:用指令碼寫c語言程式

#!/bin/bash

file="hello.c"

target="hello"

#echo "#include " >$file    (#在指令碼裡起到注釋作用)

#echo "int main()" >>$file

#echo "" >>$file

cat > $file <

int main()

gcc $file -o $target

./$target

shell指令碼基礎

執行shell指令碼有兩種方法 1 作為可執行程式 將上面的 儲存為 test.sh,並 cd 到相應目錄 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼 注意,一定要寫成 test.sh,而不是 test.sh,執行其它二進位制的程式也一樣,直接寫 test.s...

Shell指令碼基礎

1 shell是使用者與核心進行互動操作的一種介面,目前最流行的shell稱為bash shell 2 shell也是一門程式語言 解釋型的程式語言 即shell指令碼 3 乙個系統可以存在多個shell,可以通過cat etc shells命令檢視系統中安裝的shell,不同的shell可能支援的...

shell 指令碼基礎

bin bash 判斷172.40.51.0網段有多少是開關機狀態 x 0y 0 for i inseq 254 doping c1 i0.1 w1 172.40.51.i if eq 0 then echo 172.40.51.i is up let x else echo 172.40.51.i...