欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell编程听课笔记

程序员文章站 2022-04-24 18:49:35
...

1.开头:

#!/bin/bash

2.可执行:chmode +x filename

3.注释: #

4.使用变量:

set variable a 
a="hello" 
echo $a 

防止混淆${a}

默认变量:

$#:传入脚本的命令行参数个数

$*:所有命令行参数值

$0:命令本身

$1:第一个命令行参数

$2:第二个命令行参数

局部变量

hello="var1" 
echo $hello 
function func1{ 
    local hello="var2" 
    echo $hello 
} 
func1 
echo $hello

 

5.if语句

if [ expression ] 
then 
    #code block 
else 
    #code block
 fi 

 

if [ expression ] ; then 
    #code block 
elif [ expression ]
    then 
        #code block 
    else 
        #code block
    fi
fi 

 

6.比较:

整数比较:-eq -ne -gt -lt -ge -le

字符串比较:= !=  >   <  >= <= -z(空) -n(非空)

文件比较:

-e 文件已存在

-f 文件是普通文件

-s 文件大小不为零

-d 文件是一个目录

-r 可读

-w 可写

-x 可执行

例如:

$folder=/home

[ -r "$folder" ] && echo "can read $folder"

注意:

[和]左右都留有空格

=左右都有空格

[ expression ] && code 为真执行code

[ expression ] || code 为假执行code

 

7.循环

for: 

for var in [list] 
do 
    #code block 
done 

#或者 
for var in [list]; do #注意分号 
     #code block 
done

  例如:

#!/bin/bash 
for day in Sun Mon Tue Wed Thu Fri Sat 
do 
    echo $day 
done

  while:

while [ condtion ] #为真时执行 
do 
     #code block 
done

 

 until:

until [ condtion ] #为假时执行 
do 
    #code block 
done

 

8.分支语句:

case:

case "$var" in 
    condition 1) 
         ;; 
    condition 2) 
        ;;
    *) 
        default statments;;
esca

 

例如:

  #!/bin/bash 
read Keypres 
case "$Keypress" 
   in [A-Z]) 
       echo "Uppercase letter";; 
   [a-z]) 
      echo "Lowercase letter";; 
    *) 
      echo "Other";; 
esca