shell脚本的常用总结
来源:互联网 发布:bender建模软件 编辑:程序博客网 时间:2024/06/06 03:15
一. shell脚本调用另一个脚本的三种形式(网上摘录)
fork
形式: ./2.sh(默认)
运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。
sub-shell执行完毕后返回parent-shell. sub-shell从parent-shell继承环境变量.但是sub-shell中的环境变量不会带回parent-shellexec (exec /directory/script.sh)
形式:exec ./2.sh
exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。
但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别- source (source /directory/script.sh)
形式: . ./2.sh
与fork的区别是不新开一个sub-shell来执行被调用的脚本,而是在同一个shell中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用.
./a.sh ./b.sh
二. $()和${}区别
$( ) 与 ` ` (反引号) 都是用来做命令替换用
例如:command1 command2
command3 (cmd3提换出来给cmd2->cmd1) 错误表达式
若需上述修改:command1`command2\
command3` 正确
` 的错误
也可以使用$()就减小 \
command1$(command2 $(command3))
${}用来做变量替换A=B${A}B $AB 前者为BB 后者为空
三. tr命令
可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
tr ’ ’ ‘\n’ 将空格提换成\n
-s: echo “1122333345” | tr -s ‘13’
-c:取代
-d:删除
四. sed表达式
sed ‘/^$/d’ 删除空行. 正则表达式中^表示行首,$表示行尾,^$表示空行.d表示删除
五. awk
awk ‘{print “\t”,NR”.”,$0}’
NR是awk内置变量,Number of Records的缩写,表示当前记录条数(文件行数);$0表示当前行的所有内容。
六. cat<< EOF
打印信息
EOF
七. $# 表示传入脚本参数的个数
八. shift
位置参数可以用shift命令左移。比如shift 3表示原来的
八、#/和%/的区别
M=$(pwd -P) // /a/b/c/d
M=”${M%/*}” // /a/b/c
N=”${M#*/}” // a/b/c/d
也就是说%/*代表取从头到最后一个slash之前的所有内容
#/*代表去取从第一个slash之后的所有内容
九、##_和%%_的区别
AD=dsfssd_config
echo ${AD##*_}
config
echo ${AD%%_*}
dsfssd
十. 正确、错误、警告的打印方式
echo -e “\033[47;31mERROR: $*\033[0m”
echo -e “\033[47;34mWARN: $*\033[0m”
echo -e “\033[47;30mINFO: $*\033[0m”
十一. 通过#*/做字符串的剪切
假设我们定义了一个变量为:
file=/dir1/dir2/dir3/my.file.txt
可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
记忆的方法:
是 去掉左边(键盘上#在
单一符号是最小匹配;两个符号是最大匹配
${file:0:5}:提取最左边的 5 个字节:/dir1
${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2
- shell脚本的常用总结
- shell 脚本 常用总结
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 常用的shell脚本
- 总结的常用shell脚本命令,以备后用。
- 常用的shell脚本tips
- 几个常用的shell脚本
- shell脚本常用的变量
- linux 常用的shell脚本
- 几个常用的shell脚本
- shell脚本常用脚本
- 关于ajax 的 返回问题:
- CentOS6.5下安装mysql-5.7.18-linux-glibc2.5-x86_64
- Java 设计模式情景分析——观察者模式
- Grails常用快捷键
- Shell执行python文件,传参空格引起的问题
- shell脚本的常用总结
- R中rank函数使用
- vijos 金明的预算方案
- KMP算法next求法
- linux No targets specified and no makefile found
- 创建任意圆角个数
- CAFFE源码学习笔记之初始化Filler
- JSON中防止被攻击的地方
- 浅谈React实现输入框