Linux-shell学习笔记

Linux shell script 学习笔记

Shell简介

  • Bash是缩写,Linux默认shell,基于Bsh,完全兼容sh。
  • 解释型语言:执行时通过解释器解释,效率低,但是对于文件、字符串等对象操作方便,简易。
  • 编译型语言:必须先通过编译器编译,生成可执行文件,接近底层,效率高,但是操作复杂。
  • “#!”是一个标记,后面接此脚本的解释器地址
  • 代码后不需要加分号,除非几条代码在同一行
  • shell中0代表true,1代表false
  • shell中两个尽量不要有空格,[ ]中两侧要留有空格
    =========================================================

变量

变量操作

  • 定义、赋值变量 var = value
  • 引用变量 echo ${var},在变量两侧加上花括号,易理解,避免造成错误
  • 只读变量 变量赋值后,使用readonly命令,变量将不能修改
    readonly var
  • 删除变量 unset var

特殊变量

  • $0:当前脚本的文件名
  • $n:传递给脚本或函数的第n个参数
  • $#:传递给脚本或函数参数的总数
  • $*:传入的所有参数,字符串形式
  • $@:传入的所有参数,每个参数以”“分隔
  • $?:上一个命令的退出状态(返回值)
  • $$:当前命令所在程序的pid
    =========================================================

数组

数组下标从0开始

定义数组

  • array_name=(var0 var1 var2)
  • array_name[0]=var0

使用数组

  • ${array_name[n]}:引用数组第n项
  • ${#array_name[*]}:获取数组项个数
  • ${#array_name[n]}:获取数组第n项的长度
    =========================================================

符号

算术运算符

“ + - / % = ”特别注意在expr中做乘法运算时,要加上转移字符\,例expr 5 * 5

关系运算符

  • -eq:相等
  • -ne:不相等
  • -gt:大于
  • -lt:小于
  • -ge:大于等于
  • -le:小于等于

布尔运算

  • -a:与
  • -o:或
  • !:非

字符串操作

  • -z:字符串为空
  • -n:字符串非空
  • =、!=:字符串是否相同
  • ${#var}:获取字符串变量var的长度

文件检测

  • -d:是否为目录文件
  • -f:是否为普通文件
  • -c:字符设备文件,键盘,鼠标等
  • -b:块设备文件,存储设备,硬盘等
  • -r、w、x:检测文件权限,是否可读、写、执行
    对于目录文件,r表示可获取其名称及目录ls,w表示可增删改,x表示可执行cd
  • -e:检测文件是否存在(包括目录)

引号

  • 单引号:所有内容远样输出,不能输出变量,不转意任何内容
  • 双引号:会解析所有内容
    ========================================================

控制语句

if


if [ expression ]
then
command
elif [ expression ]
then
command
else
command
fi

case


case $code in
$var1)
command
;;
$var2)
command
;;
*)
command
;;
esac

for


for var in list
do
command
done

while


while expression
do
command
done

until


until
do
command
done

break continue同c

=========================================================

函数

定义函数


function_name()
{
command
[return/exit n]
#函数中return和exit可设置函数返回值,在调用后,可用#?获取返回值
}

函数参数类似脚本参数,调用函数时,直接加在函数名后

输出语句

echo
  • -e:加上此选项才会对输出内容进行转意
  • \n \c 换行和不换行,默认换行
printf
  • printf format-string [arguments…]
  • 不需要加()

输入语句

  • read var

学习档案、内容参考:
http://c.biancheng.net/cpp/view/6994.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值