1)Shell入门案例:
#!/bin/bash
echo "hello shell"
>hello
2)变量
#!/bin/bash
#定义一个变量
num=10
#取出变量
echo $num
>10
3)键盘输入值
方式1:键盘输入值
#!/bin/bash
#定义一个变量
num=10
#第一次输出num的值
echo "第一次num=$num"
echo "请输入num的值"
#读取键盘输入的值
read num
#第二次输出num的值
echo "第二次num=$num"
>第一次num=10
>请输入num的值
>100
>第二次num=100
方式二:一行键盘输入值
#!/bin/bash
#定义变量
num=10
echo "第一次num=$num"
#在一行上键盘输入
read -p "请输入num的值:" num
echo "第二次num=$num"
>第一次num=10
>请输入num的值:200
>第二次num=200
方式三:读取多个值
#!/bin/bash
#读取多个数据
read -p "输入num1和num2的值:" num1 num2
#输出数据
echo "num1的值:$num1"
echo "num2的值:$num2"
>输入num1和num2的值:100 200
>num1的值:100
>num2的值:200
只读变量
#!/bin/bash
#readonly定义的变量是只读变量
readonly num=10
echo "第一次num的值是:$num"
#尝试修改num的值
num=200
echo "第二次num的值是:$num"
>第一次num的值是:10
>第二次num的值是:10
4)预变量
#!/bin/bash
#测试预变量
echo "参数的个数=$#"
echo "参数的内容=$*"
echo "第一个参数=$1"
echo "第二个参数=$2"
echo "第三个参数=$3"
echo "进程名=$0"
echo "进程号=$$"
readonly num=10
num=250
echo "num=250的结果是=$?(0表示成功,1表示失败)"
>bash t.sh haha xixi lala
>参数的个数=3
>参数的内容=haha xixi lala
>第一个参数=haha
>第二个参数=xixi
>第三个参数=lala
>进程名=t.sh
>进程号=32777
>t.sh:行14: num: 只读变量
>num=250的结果是=1(0表示成功,1表示失败)
5)判断变量是否存在
第一种方式:
#!/bin/bash
#如果num存在,则整个表达式的值是num,否则为val
echo ${num:-100}
num=200
echo ${num:-100}
>100
>200
第二种方式:
#!/bin/bash
#如果num存在,整个表达式的值为num,否则为val,同时将val的值赋给num
echo ${num:=100}
echo "num的值是:100"
>100
>num的值是:100
6)字符串的操作
#!/bin/bash
#定义一个字符串
str="hehe:haha:xixi:lala"
echo "字符串是:${str}"
#测量字符串的长度${#str}
echo "字符串str的长度是:${#str}"
#从下标3位置向后截取字符串
echo "从下标为3位置向后截取字符串:${str:3}"
#从下标为3的位置提取长度为6字节的字符串
echo "从下标为3的位置提取长度为6字节的字符串:${str:3:6}"
#用new替换str中出现的第一个old ${str/old/new}
echo ${str/:/*}
#用new替换str中所有的old ${str//old/new}
echo ${str//:/*}
>字符串是:hehe:haha:xixi:lala
>字符串str的长度是:19
>从下标为3位置向后截取字符串:e:haha:xixi:lala
>从下标为3的位置提取长度为6字节的字符串:e:haha
>hehe*haha:xixi:lala
>hehe*haha*xixi*lala