脚本使用

google的编程风格

google的shell风格

1
2
3
4
#!/bin/sh

# 如果调用失败就退出,set +e相反
set -e

常用命令使用

常用匹配符

匹配符 作用
. 匹配除换行之外的任意字符
\w 匹配字母,数字或下划线
\s 匹配任意的空白
\d 匹配数字
\D 匹配非数字字符
\b 匹配单词的开始或结束
^ 匹配字符串开始
& 匹配字符串结束

命令使用

grep

选项 作用
-i 忽略大小写

cut

选项 作用
指定单位 -b以字节为单位,-c以字符为单位,-f以字段为单位
N-,-M,N-M 取值范围
-d 指定定界符

xargs

命令行参数转换

选项 作用
-d 指定分割符
-n [Num] 指定一行的字段数

wc

选项 作用
-l 统计行数
-w 统计单词数
-c 统计字符数

#,##,#,##,% ,%% 的含义及用法

作用可以在${}分别替换得到不同的值,很有意思的一个地方,#在$的左边,%在$的右边

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
file=/dir1/dir2/dir3/myfile.txt

# 删掉第一个/及其左边的字符串
${file#*/}
# 删掉最后一个/及其左边的字符串
${file##*/}
# 删掉第一个.及其左边的字符串
${file#*.}
# 删掉最后一个.及其左边的字符串
${file##*.}
# 删掉最后一个/及其右边的字符串
${file%/*}
# 删除第一个/及其右边的字符串,‘.’类似
${file%%/*}
# 提取最左边的5个字节
${file:0:5}
# 提取第5个字节的连续5个字节
${file:5:5}
# 对变量的值做替换,替换第一个
${file/dir/path}
# 对变量的值做替换,替换所有
${file//dir/path}

windows的bat脚本使用

setlocal和endlocal的作用

让中间程序对于系统变量的改变只在程序内起作用

pushd和popd的作用

pushd保存当前目录供popd使用,然后改到指定目录

%~dp0%含义

当前批处理文件所在的路径

:: 注释

for命令

1
for /f "tokens=2,3,4 delims=/ " %%a in ('date /t') do @echo %%c-%%a-%%b

findstr在文件中查找字符串

findstr使用