shell 基本 知识

基本参数

  1. e filename 如果 filename存在,则为真 如: [ -e /var/log/syslog ]
  2. -d filename 如果 filename为目录,则为真 如: [ -d /tmp/mydir ]
  3. -f filename 如果 filename为常规文件,则为真 如: [ -f /usr/bin/grep ]
  4. -n 若字符串不为0 - true [=n “$a”]
  5. cut -d ‘-’ -f1
  6. mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
  7. chmod +x 给执行权限
cut -f1 -d'-' 以'-' 为分隔符,取第一个字段

$ uname -rs|sed 's/ //g'|cut -f1 -d'-'   (-f1切割开的第一块区域- f2第二块区域  -d'-'自定义分隔符为-
  1. $@:表示所有脚本参数的内容   $#:表示返回所有脚本参数的个数。 $0
    变量 含义
    $0 当前脚本的文件名
    $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
    $# 传递给脚本或函数的参数个数。
    $* 传递给脚本或函数的所有参数。
    $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
    $? 上个命令的退出状态,或函数的返回值。
    $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

基本命令

创建
touch 创建文件
mkdir 创建目录

sed

sed的使用方法

https://blog.csdn.net/wdz306ling/article/details/80087889

1.命令行指定sed指令对文本进行处理:
   sed +选项  ‘指令’ 文件
2.将sed指令保存到文件中,将该文件作为参数进行调用:
   sed   +选项  -f  包含sed指令的文件  文件

sed -n '2p' file 打印file第2行  
-n 只显示匹配处理的行

sed '2,$p'  打印从第一行到最后一行

语法

路径

要用‘/’,如G:/anhang/xxx.x

if

if 
elif
	then
fi

if test ${#a[@]} -eq 0
then 
  echo
fi
  
if [[ "$a" == *".zip"* || "$a" == *".rar"* ]]

¥() 和 ‘ ’ 命令变量替换

变量

IFS(Internal Filed Separator-内容字段分隔符)

#获取字符串的长度 echo ${#str}
1 查看IFS的值
echo "$IFS"
 
echo "$IFS"|od -b

0000000 040 011 012 012  
0000004
转二进制,"040"-空格,"011"-Tab,"012"-换行符"\n" 。最后一个 012 是因为 echo 默认是会换行的。

2 实际中的应用
#!/bin/bash
OLD_IFS=$IFS #保存原始值
IFS="" #改变IFS的值
IFS=$OLD_IFS #还原IFS的原始值


file=$1

if [ "KaTeX parse error: Expected '}', got '#' at position 6: {file#̲#*.}"x = "css"x…{file##*.}"x = "js"x ];then

do something

fi
复制代码
注意:

1> 提取文件后缀名: ${file##*.}

##是贪婪操作符,从左至右匹配,匹配到最右边的.号,移除包含.号的左边内容。

这里可以参考 http://www.1987.name/264.html

2> 是=,而且其两边有空格,如果没有空格,会报错

3> 多加了x,是为了防止字符串为空时报错。

双引号里,可以有变量
单引号里,变量必须再+单引号
变量 直接用$+name

写操作会自动创建文件
echo ${data} >> ${sourcePath}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值