看懂shell中的各种语句

看懂shell中的各种语句

shell文件的开头通常是 #!/bin/bash

1.-e filename 如果 filename存在,则为真
这是判断文件是否存在的,常用[! -e filename ]。

2.if then else 语句 相关判断可参考博客

if [! -e filename]; then
   ....
elif [...]; then
	....
else 
   if [...]; then
   		....
   fi
fi

3.mkdir -p
创建目录及子目录。

4.wget 远程文件 -O 指定文件路径
将下载的文件存放到指定的文件夹下,同时重命名下载的文件,利用-O
举例子:

wget ftp://name:password@ip:port/pathname -O yourpathname

4.tar -zxvf 可以参考博客
z为调用gzip,x为解压,v为显示详细信息,f指定解压路径 。

sudo tar -xzf ${toolchainName} --strip-components=3 -C ${toolchainPublicPath}

–strip-components = NUMBER
在提取时从文件名中删除NUMBER个前导组件

5.#可以做注释 ${变量} 可参考博客1 可以参考博客2
其中$0为shell文件名(第一个参数 类似main函数传参)
$1 为第二个参数
$2 为第三个参数
$@ 为所有参数

6.shell 如何写函数定义

function name()
{
	...
	...
}

7…/configure --frefix=
配置软件安装路径,详细可参考博客
make && make install 编译并安装

8.软链接 ln -sf a b
将b---->a
强行创建软链接,-s为创建软链接参数,-f强制创建

9.复制命令 for cmd in … 可以参考博客

for i in `pwd`;  
do   
echo $i is dir\! ;  
done 

10.chmod u+s 可以参考博客
u+s后其他用户都可享有文件属主的权限

11.test命令 可以参考博客
可以用于检查某个条件是否成立,可以分为数值、字符串、文件、变量四个方面,其中文件的测试包括文件类型、文件权限的判断和两个文件之间的比较。

12.shell 的|| 和 && 可参考博客
cmd1 && cmd2 只有cmd1执行成功才执行cmd2

13.shell read可参考博客
从行中读取返回给变量

 read -t 30 -p "请输入版本号:" version

意思是指定时间30内读取内容到version ,-p 指提示符

14.echo -e 表示忽略转义字符’\'
格式化输出:

echo  -e "\033[;33;7m hello \033[0m"

以EOF未结束输出:

cat > file <<EOF
....
....
EOF

15.shell中 符号$各种用法及意义:可参考博客

16.sed -i 直接对文本字符进行替换:

在这里插入图片描述
第一种是只会对每一行以原字符串开头的第一个进行替换,加了g就对所有都替换

sed -i 's/原字符串/新字符串/' file  
sed -i 's/原字符串/新字符串/g' file

删除包含某字符串那一行:

sed -i  "/SYS_LIBCOMMLOG_MOD_EN_TR069/d" system_config_MTK7561.def

在这里插入图片描述

17.grep -E 对多个包含关键字的或操作: 可参考博客
在这里插入图片描述

18.如何打印当前执行脚本目录?(上级目录)
在这里插入图片描述

echo "$(cd "$(dirname "$0")/.."; pwd)"
echo "$(cd "$(dirname "$0")"; pwd)"

在这里插入图片描述

19.查看脚本运行过程 /bin/sh -x

在这里插入图片描述

20.字符串截取 $(line:1:8) 可以参考博客

$(line:1:8) #表示截取line变量中字符串第1到第8个字节,从第0字节开始

21. grep xxx | cut -d: -f2 字符串分割

grep xxx | cut -d: -f2  表示将grep的输出结果以":" 为分割符,第2个字段

在这里插入图片描述

22.grep xxx| awk -F “:” ‘{print $2}’ 字符串分割

grep xxx| awk -F ":" '{print $2}'  表示将grep的输出结果以":" 为分割符,第2个字段

在这里插入图片描述
23.根据字符串截取"="前字符

line="SYS_TIMR=45"
echo "${line%=*}"

在这里插入图片描述
24.grep用法 可参考博客

fgrep 是快速查找

[a-zA-Z] 等价于 [:[alpha]:]
[a-z] 等价于 [:[lower]:]
[A-Z] 等价于 [:[upper]:]
[0-9] 等价于 [:[digit]:]

grep -s 就不会出现no such file or directory
grep -q 判断存不存在不会输出打印,存在返回0

25.echo ${xx#* xxno}

假如xx = "123 xxno xiening xxx "
将会打印xiening xxx

但是没有匹配上将会打印 123 xxno xiening xxx

echo ${value#*=} 将value为=后的字符打印出来
echo ${value%%=*} 将value为=前的字符打印出来

26.函数参数赋值

export ${NO_EXPORT:+-n} "$1=$_tmp"

27.简单的条件判断语句:
在这里插入图片描述

28.查找一分钟之内被改过的文件:

find . -mmin 1

在这里插入图片描述
30. #去掉选项中的-O2选项

ifeq "${DISABLE_OPTIMIZE}" "1"
CFLAGS:=$(filter-out -O%,${CFLAGS} )
endif

31.查看应用程序依赖库
ldd

32.查看代码所在仓远程地址

git remote -v

在这里插入图片描述

33.算术运算

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值