shell笔记

1、判断字符串是否为空

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


判断字符串是否非空

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


2、判断字符串是否相等

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


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


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


显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
$? 


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、

#只显示文件指定行号的某一行
sed -n 15p file_name

#打印第10行到最后一行
sed -n '10,$p' file_name


#每一行第一个good替换成bad
sed -i 's/good/bad/' file_name
#每一行第二个good替换成bad
sed -i 's/good/bad/2' file_name
#每一行全部good替换成bad
sed -i 's/good/bad/g' file_name

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命令后面,否则不生效


13、查看端口属于哪个程序
lsof -i :8080
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值