Linux Shell 编程学习笔记

时间:2023-12-14 11:45:20

1:Shell Script中if语句的条件部分要以分号来分隔

2:要注意条件测试部分中的空格。在方括号的两侧都有空格

3:echo "Hi, ${a}s" 单引号中的变量不会进行变量替换操作。

4:[ -f "$file" ] 判断$file是否是一个文件

5:[ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于

6:[ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性

7:[ -n "$a" ] 判断变量$a是否有值,测试空串用-z

8:[ "$a" = "$b" ] 判断$a和$b的取值是否相等

9:[ cond1 -a cond2 ] 判断cond1和cond2是否同时成立,-o表示cond1和cond2有一成立

说明:$#表示包括$0在内的命令行参数的个数。在Shell中,脚本名称本身是$0,剩下的依次是$0、$1、$2…、${10}、${11},等等。$*表示整个参数列表,不包括$0,也就是说不包括文件名的参数列表。

注意:一定要切记filelist=后边的那个引号不是单引号,而是tab键上边的那个键,或者说是1左边的那个键

filelist=`ls /home/work`
for file in $filelist
do 
echo $file
done

实例:shell遍历目录下所有文件 displayfile.sh

#!/bin/sh
cd $1
echo "The Catelog:$1"
files=`ls -a`
m=0
n=0
for f in $files
do
 if [ -d "$f" ]; then
  m=`expr $m + 1`
 else
  n=`expr $n + 1`
  echo "$f"
 fi
done
echo -e "The Catelog Number is $m"
echo -e "The File Number is $n"
运行:./displayfile.sh   /home/work

实例:Linux shell脚本判断当前是否为root用户

whoami(显示当前用户的用户名)

if [ `whoami` = "root" ];then
 echo "root用户!"
else
 echo "非root用户!"
fi

id -u (显示当前用户的uid)

if [ `id -u` -eq 0 ];then
 echo "root用户!"
else
 echo "非root用户!"
fi