Linux-shell编程

创建shell文件、运行程序

使用 vi 创建一个xx.sh(sh代表shell)
运行 Shell 脚本有两种方法
1.作为可执行程序

./  xx.sh

尽量加上 ./ (当前目录下,比较好找)
2.作为解释器参数

/bin/sh test.sh

shell变量

定义变量
定义变量直接定义,变量名和等号之间不能有空格,不能使用关键字

myname="lihegui"

使用变量
使用一个定义过的变量,只要在变量名前面加美元符号或者 ${ 变量名 }

echo $myname

只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

readonly myname

字符串
字符串可以用单引号,也可以用双引号,也可以不用引号。
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。双引号里面的变量有效,允许转义字符

your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3

结果

hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !

获取字符串长度

string=“abcd”
echo ${#string} #输出 4

提取子字符串

以下实例从字符串第 2 个字符开始截取 4 个字符:
string=“runoob is a great site”
echo ${string:1:4} # 输出 unoo

数组

定义数组

array_name=(
value0
value1
value2
value3
)

读取数组

${数组名[下标]}

获取数组中的所有元素

echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

前面加#可以获取数组长度

echo "数组的元素为: ${#my_array[*]}"
echo "数组的元素为: ${#my_array[@]}"

注释

以 # 开头的行就是注释,会被解释器忽略

#此行为注释

传递参数

$0 代表脚本本身
$1… $9 代表第几个参数

echo "执行的文件名:$0";
echo "第一个参数:$1";
echo "第二个参数:$2"

执行

./ xxx.sh 1 2

运算符

语法

if else

a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

for循环

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

函数

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李和贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值