shell笔记

1、判断字符串是否为空

if [ -z $str ]; then
    echo "string length is zero"
fi


2、判断字符串是否相等

if [ "$str1" -eq "$str2" ]; then
    echo "equal string"
fi


3、同步时间
ntpdate time.windows.com


4、计算shell脚本命令行参数的个数

$#


5、获取字符串子串
${varible##*string}
从左向右截取最后一个string后的字符串

${varible#*string}
从左向右截取第一个string后的字符串

${varible%%string*}
从右向左截取最后一个string后的字符串

${varible%string*}
从右向左截取第一个string后的字符串

例如:文件time.txt,要截取子串time,
file="time.txt"
substring=${file%.*}


*是通配符

6、数值计算
let a=b+c

或者
a=$((b+c))

支持加减乘除,不支持小数计算,变量前不用加上$符号

7、判断是否是目录
if [ -d $dir ]; then
    echo "${dir} is directory"
fi


8、获取当前时间到1970年1月1日的秒数
current=`date +%s`


9、grep指定扩展名的文件
find . -name *.py|xargs grep asdf


10、只显示文件指定行号的某一行
cat file_name | sed -n 15p


11、for循环
for i in a b c
do
  echo $i
done

输出
a
b
c

12、awk指定输入分隔符和输出分隔符
awk -F, '{print $1,$2,$4,$5,$6,$7,$8,$9}' OFS="," 文件名
# -F 指定输入分隔符
# OFS 指定输出字段分隔符,要放在print命令后面,否则不生效

你可能感兴趣的:(shell)