shell编程

一.变量

helloworld.sh

## 输出helloworld
echo "hello world!"

ADDR="zhongguo shanghai"
## 输出变量的值
echo $ADDR

## 单引号与双引号的区别
echo "address:$ADDR"
## 输出为:address:zhongguo shanghai
echo 'address:$ADDR'
## 输出为:address:$ADDR
## 变量名在字符串的前面时
NAME=Tom

echo "$NAME,hi!1"
## 这里会将$NAMEehi当成一个变量,所以输出为: !2,取到的变量值为空,这时候需要使用下面的方式取值
echo "$NAMehi!2"
echo "${NAME}hi!3"

## 撤销变量
unset NAME
echo "${NAME}hi!4"

## 声明静态的变量
readonly age=18
## unset age 这句会报错,因为age不能再改了
## 让shell子进程访问到本进程中的变量值,一下两种方式,第二种方式开头的"."相当于source,调用b.sh进行执行,
## b.sh中的内容为:#!bin/bash 换行 echo "b.sh---$ADDR"
source /root/b.sh
. ./b.sh
echo "helloworld.sh---$ADDR"
## 调用function.sh中的函数
## 获取hellorn的返回值
echo "helloworld.sh---$retu"

b.sh

#!bin/bash
echo "b.sh---$ADDR"

二.输入输出

## read命令用于从控制台读取输入的数据,"[","]"两边必须有空格,"="两边必须有空格[]中如果直接写了非空字符,即为true.什么也不写为false
## read空格-p空格"aaa"空格变量名
read -p "输入你的用户名:" NAME
printf "=============${NAME}============\n"
## 输出
echo "$NAME"

三.条件判断

condition.sh

#!/bin/bash
## read命令用于从控制台读取输入的数据,"[","]"两边必须有空格,"="两边必须有空格[]中如果直接写了非空字符,即为true.什么也不写为false
read -p "输入你的用户名:" NAME
printf "=============${NAME}============\n"
if [ $NAME = root ]
    then
        echo "用户:root"
        echo "hello,${NAME},wolcome!"
    elif [ $NAME = itcast ]
        then
            echo "用户:itcast"
            echo "hello,${NAME},wolcome!"
    else
        echo "hello,sb!"
fi
##三元运算符[ condition ] && echo "true" || "false"
##当条件表达式为多个boolean表达式时
##方式一:[[ condition1 && condition2 ]]
##方式二:[ condition1 -a condition2 ] -a为and,-o为or

## 字符串比较
##比较运算符 =    !=  -z  -n
##=相等,!=不相等,-z长度为0返回true,-n长度不为0返回true

## 数字比较
## -lt 小于
## -le 小于等于
## -eq 等于
## -gt 大于
## -ge 大于等于
## -ne 不等于
if [ 1 -ge 5 ]; then echo ok;else echo notok;fi

## 文件判断
## -d 是否为目录
## -f 是否为文件
if [ -f /root/b.sh ];then echo ok;else echo notok;fi
## -e 是否存在

## while
## case
## for

四.运算符

expression.sh

#!/bin/bash
## 运算符:计算(2 + 3) * 4 的值
## 方式一:分两步计算
result=`expr 2 + 3`
echo "2 + 3 = $result"
result=`expr $result \* 4`
echo "5 * 4 = $result"
## 方式二:一步计算出结果,注意"\"的使用,运算符前后必须有空格
result=`expr \`expr 2 + 3\` \* 4`
echo "(2 + 3) * 5 = $result"
## 方式三:用(())
result=$((1+1))
echo "1 + 1 = $result"
result=$(((2+3)*4))
echo "(2 + 3) * 4 = $result"
## 方式四:用[]

result=$[(2+3)*4]
echo "(2 + 3) * 4 = $result"

五.函数

function.sh

#!/bin/bash
##函数无参数无返回值的定义
hello()
{
    echo "helloworld!"
}
## 调用函数
hello

## 有返回值的函数
hellorn()
{
    return 1 ##这里只能返回0-255的数,当运算结果超过256时,会返回二进制的后八位的值.
}
##  调用
hellorn
## 获取函数返回值
retu=$?
echo "function.sh---$retu"
. ./helloworld.sh


## 有参数的函数
hellocan()
{

    echo "参数1--$1"
    echo "参数2--$2"
    echo "参数3--$3"
    echo "参数4--$4"
    echo "参数5--$5"
    echo "参数6--$6"
    echo "参数7--$7"
    echo "参数8--$8"
    echo "参数8--$9"
    echo "参数10--${10}"
    echo "参数11--${11}"
}
## 调用
hellocan 1 2 3 4 5 6 7 8 9 1000 2000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值