美文网首页
shell脚本-详解基本语法

shell脚本-详解基本语法

作者: Peakmain | 来源:发表于2019-10-23 16:12 被阅读0次

shell脚本创建和运行

#需要谁来解析执行该shell脚本
#!/bin/bash

#echo打印输出
echo "hello shell"

修改权限:chmod u+x xx.sh

自定义变量和预定义变量

变量设置规则
1、命名和Java规范一样
2、shell中默认都是字符串类型,如果需要用到其他类型,需要额外处理
3、变量用等号连接,千万不能有空格
4、变量的值如果有空格,需要用单引号或者双引号

#变量设置规则
#1、命名和Java规范一样
#2、shell中默认都是字符串类型,如果需要用到其他类型,需要额外处理
#3、变量用等号连接,千万不能有空格
#4、变量的值如果有空格,需要用单引号或者双引号

str1="str1"
str2=str2
str3=3
str4="str4"

#修改变量的值
str4=str4

# $取变量的值
echo "str1 = $str1"
echo "str2 = $str2"
echo "str3 = $str3"
echo "str4 = $str4"

#输出环境变量
echo "CMAKE_PATH= ${NDK_PATH}"

#指定一个命令的执行返回结果给变量
#soPath=${pwd}
soPath=`pwd`
echo "soPath =${soPath}"

位置参数变量与预定义变量

#!/bin/bash

# 获取参数 
# $n 来获取参数,$0 代表程序本身,$1-$9代表第一个参数到第九个参数,十以上的参数要用大括号 ${10}
# $* 代表的是命令中的所有参数,但是会把参数看成一个整体 "$0,$1,$2,$3,$4...$n"
# $@ 代表命令中的所有参数,但是会把参数区分对待 "$0","$1","$2"..."$n"
# $# 代表参数中的个数

echo "$0=$0"
echo "\$1=$1"
echo "\$2="$2


echo "\$*="$*
echo "\$@="$@
echo "\$#="$#

#每次逻动(删除)第一个参数
shift

echo "\$1=$1"
echo "\$@="$@

echo "========================================"
for i in $*
do
echo $i
done

echo "========================================"
for i in $@
do
echo $i
done

echo "========================================"
for i in "$@"
do
echo $i
done

echo "========================================"
for i in "$*"
do
echo $i
done

预定以变量:是bash中已经定义好的, 变量的作用是固定

$?:返回的是上一个执行命令的返回值,执行成功返回0,执行失败返回非0
$$:返回的是当前脚本的进程号
$!:获取最后一个在后台执行的进程号

获取用户输入的参数

#!/bin/bash

#获取用户及时输入的参数

read -p "please your name!" name
echo "name =$name

sp表示不显示

#!/bin/bash

#获取用户及时输入的参数

#read -p "please your name!" name
#echo "name =$name"

#输入年龄
read -sp "please input your age!" age
echo "age =$age"

输入yes/no以及5s没响应直接跳过

#!/bin/bash

#输入yes/no
read -t 5  -n 1 -p "please input [y|n]" input
echo "input =$input"

条件判断 test expression 或者[]

  • 数字计算
#!/bin/bash
#条件判断 test expression 或者[]

#测试的范围:整数,字符串,文件
num1=1
num2=2
#数字计算 expr命令 $(())
num3=$((num1+num2)) 
echo $num3
  • 判断两个字符串是否为空
#!/bin/bash
#条件判断 test expression 或者[]
str1=peakmain
str2=jack
test $str1 == $str2
echo "$?"
  • [str]测试字符串是否不为空

  • test -n str 测试字符串是否不为空

  • test -z str 测试字符串是否为空

  • 判断数字是否相等:
    [num1 - eq num2]

  • 判断数字不等
    [num -ne num2]

  • 判断数字大于等于
    [num1 -ge num2]

  • 判断数字是否小于等于
    [num1 -ln num2]

  • 判断数字是否大于
    [num1 -gt num2]

  • 判断数字是否小于
    [num1 -lt num2]

  • 判断是否是个目录
    test -d file

  • 判断是否是个普通文件
    test -f file

  • 判断是否存在
    test -e file

  • 判断是否是链接
    test -L file

  • 判断是否可读
    test -r file

  • 判断是否可写
    test -w file

  • 判断是否可执行
    test -x file

流程控制语句和函数

#!/bin/bash
#函数需要先定义再使用
function error(){
   
        echo "usage: ./build_ogre.sh [build_type]"
    echo "build_type:Release or Debug(must have)"
        exit
}
#需要用户去指定编译Debug还是Release

#判断是否有输入
if [ -z $1 ]
then
    error
fi

CMAKE_BUILD_TYPE=""
if [ $1 = "Debug" ]; then
    CMAKE_BUILD_TYPE="Debug"
elif [ $1 = "Release" ]; then
    CMAKE_BUILD_TYPE="Release"
else
    echo "usage: ./build_ogre.sh [build_type]"
    echo "build_type:Release or Debug(must have)"
    exit
fi
echo "start build ogre $CMAKE_BUILD_TYPE"
echo "==========="
for((i=0;i<10;i++))
do
    echo $i
done


echo "==========="
sum =0
i=1
while(($i<=100))
do 
    sum=$(($sum+$i))
    i=$(($i+1))
done
echo "sum =$sum"
    
echo "==========="

case $2 in 
    start)
        echo "start service"
        ;;
    stop)
        echo "stop service"
        ;;
    *)
        echo "invalid command"
        echo "Usage:{start|stop}"
esac

输出错误日志,输出日志,输出配置文件

>代表重新生成,>>代表追加
#需要谁来解析执行该shell脚本
#!/bin/bash
echo "Hello Shell" >log.txt

相关文章

  • shell脚本-详解基本语法

    shell脚本创建和运行 修改权限:chmod u+x xx.sh 自定义变量和预定义变量 变量设置规则1、命名和...

  • shell脚本-基本语法

    前言 什么是shell脚本呢?shell脚本就是利用shell的功能所写的一个纯文本的程序,将一些shell的语法...

  • Shell脚本中的if和case逻辑判断

    一、if 逻辑判断 1.1 基本语法和大小判断 在shell脚本中,if逻辑判断的基本语法为: 例如: 需要注意的...

  • shell 基本语法

    shell 基本语法 jenkins 上构建项目时,经常需要借助 shell 脚本,最近也经常跟服务器打交道,顺便...

  • Shell 脚本的组成部分

    本文参考自 《Linux Shell命令行及脚本编程实例详解 》 Shell 脚本的组成部分:1.Shell 关键...

  • 第1次课-Shell脚本语言-第1讲

    进入Shell语言基础学习? 1、第一个Shell程序? 2、Shell脚本语法->注释? 3、Shell脚本语言...

  • Unix/Linux shell入门

    一. 介绍 shell脚本,顾名思义就是跟执行shell命令、shell交互的脚本。由于历史原因,shell语法比...

  • shell 语法

    shell 语法如何抒写一个shell脚本shell脚本运行shell中的特殊符号管道重定向shell中数学运算脚...

  • Linux Shell: 各种tips

    通用Linux中执行shell脚本的4种方法总结hbase shell基础和常用命令详解 2.字符串Shell脚本...

  • Linux_Shell脚本编程之运算符

    基本介绍 学习如何在shell脚本编程中进行各种运算操作 基本语法 1、”[运算符]“ 或者 expr m + n...

网友评论

      本文标题:shell脚本-详解基本语法

      本文链接:https://www.haomeiwen.com/subject/phtumctx.html