Shell基本知识

1、基本知识

  • shell脚本语言是Linux独有的,都是以xxx.sh的后缀文件。
  • 执行shell脚本
// 第一种方式:
/bin/base xxx.sh
// 第二种方式:先要赋权限然后再执行
// 赋权限可以用chmod +x xxx.sh 或 chmod 777 xxx.sh
./xxx.sh
// 第三种方式:
sh xxx.sh
  • 解释器,一定要有的:
// 第一种:base解释器
#!/bin/bash
// 第二种:sh解释器
#!/bin/sh

2、常用操作

  • 这些都是一些常用的操作,更多可以参考《Shell从入门到精通》这本书
  • 打印输出
### 打印输出
age=99
echo age= $age
  • 查看当前的目录
### 查看当前的目录
echo path= $PWD
  • 查看当前Shell脚本的名称
### 查看当前Shell脚本的名称
echo "当前Shell脚本的名称是:$0"
  • 外部传值
### 外部传值
echo "外部传入参数一是:$1"
echo "外部传入参数二是:$2"
  • 判断上一次执行是否成功
### 判断上一次执行是否成功
echo "是否执行成功:$?"
  • 获取外部传入了多少参数
### 获取外部传入了多少参数
echo "外界传入了多少参数:$*"
  • 获取外部传入的参数数量
### 获取外部传入的参数数量
echo "外界传入的参数数量:$#"
  • for循环
### for循环
for i in `seq 1 20`
do
	echo "for循环遍历的数字是:$i"
done
  • for循环累加1~100
### for循环累加1~100
sum=0
for((f=0;f<=100;f++))
do
	sum=`expr $f + $sum`
done
echo "for循环累加1~100的值为:$sum"
  • while循环
### while循环
i=0
while((i<100))
do
        # 注意:这里的 不能直接 $i + 1 必须要 expr.... 才行的
        i=`expr $i + 1`
        echo "while循环遍历的值数字是:$i"
done
  • 查找当前目录下,所有的.sh文件,进行打包操作
### 查找当前目录下,所有的.sh文件,进行打包操作
for i in `find /root -name "*.sh"`
do
        tar -czf tt.tgz $i
done
  • 读取我在控制台输入的信息且循环一直等待
### 读取我在控制台输入的信息且循环一直等待
while read lineVarAA
do
        echo "-----$lineVarAA"
done
  • if语句,其中then代表触发点
### if语句,其中then代表触发点
NUM1=100
NUM2=200
if((NUM1>=NUM2)); then
	echo "NUM1大于等于NUM2"
else
	echo "NUM2大于NUM1"
fi
  • 判断目录是否存在,如果存在就提示已经存在,如果不存在,就创建此文件夹
### 判断目录是否存在,如果存在就提示已经存在,如果不存在,就创建此文件夹
if [ ! -d `pwd`/testDir ]; then
    mkdir -p `pwd`/testDir 
else
    echo "testDir 目录已经存在了"
fi
  • 算数运算符,不用空格
### 算数运算符,不用空格
result=$((100+200))
echo "算数运算符执行结果:$result"
  • 判断字符串是否相等
### 判断字符串是否相等
if [ $var1 = $var2 ]
then
        echo "var1不等于var2"
else
        echo "var1等于var2"
fi
  • 判断字符串是否为空
### 判断字符串是否为空
if [ $var1 ]
then
        echo "字符串不为空,值是 $var1 "
else
        echo "字符串为空"
fi
  • 重定向,屏幕文件标识为0,重定向就是将一个指定文件重定向到屏幕文件0上,从而显示出来
### 重定向,屏幕文件标识为0,重定向就是将一个指定文件重定向到屏幕文件0上,从而显示出来
cat 0< file01.txt
  • 函数,后续要执行直接写函数方法名
### 函数,后续要执行直接写函数方法名
function test01() {
        echo "我是一个函数"
}
test01
  • 函数中使用局部的变量
### 函数中使用局部的变量
function test02() {
        var1="Kevin"
        var2="Kevin2"
        echo $var1
        echo $var2
        echo "test02 method run ..."
}
test02
  • 传递参数给函数
### 传递参数给函数
function test03(){
        echo "test03 method run 参数是:`expr $1`"
        echo $1
}
test03 999999

你可能感兴趣的:(C/C++,shell)