shell 备忘录

shell 主要指 shell 脚本,通常有两种方式运行:

shell 运行方式

1.作为可执行程序
保存为 helloworld.sh,并 cd 到相应目录:

chmod +x ./helloworld.sh  #使脚本具有执行权限
./helloworld.sh  #执行脚本

2.作为解释器参数
直接运行解释器,其参数就是 shell 脚本的文件名

/bin/sh helloworld.sh
/bin/php helloworld.php

shell 字符串

获取字符串长度
string="helloworld"
echo ${#string} #输出 10
提取子字符串

以下实例从字符串第 2 个字符开始截取 4 个字符:

string="helloworld"
echo ${string:1:4} # 输出 ello
查找子字符串

查找字符 “i 或 s” 的位置:

string="helloworld is a begining"
echo `expr index "$string" is`  # 输出 12

#### 注释
shell 只有单行注释,用 # 标识

shell 数组

主要是一维数组

赋值
array_name=(value0 value1 value2 value3)
取值
valuen=${array_name[n]}

使用@符号可以获取数组中的所有元素,例如:

echo ${array_name[@]}

shell 传递参数

为脚本设置可执行权限,并执行脚本,输出结果如下所示:

脚本 helloworld.sh

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

执行

$ chmod +x helloworld.sh # 赋予执行权限
$ ./helloworld.sh 1 2 3

结果

Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

shell 运算符

支持常用的运算符,但是原生 bash 不支持简单的数学运算,可以通过其他命令来实现,例如 awk 和 expr,expr 最常用

#!/bin/bash

val1 = `expr 2 + 2` # 这里是 反引号,表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2
a=10
b=20
val2 = `expr $a \* $b` # 乘法必须反斜杠,其他的不用 
echo "两数之和为 : $val1"
echo "两数之积为 : $val2"

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

shell 打印

printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 

打印出来的
这里写图片描述

条件语句

sh的流程控制不可为空,所以 else 语句里面不能为空

函数

#!/bin/bash
# author:菜鸟教程

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值