shell编程

1.查看进程

#!/bin/bash
#打印当前运行的线程,输入参数为线程的关键字
ps -eLF | grep $1

终端输入 chmod +x test.sh 然后 ./test.sh netease  ,即可打印网易云的进程;

直接用bash test.sh亦可

2.输入输出重定向

先将 test.text重定向为 输入,再将其中 含有 "jk"的行筛选出来,最后将筛选出的行进行排序

cat <test.text |grep jk|sort

3.shell是一门动态类型,弱类型语言;

定义时不使用显示的数据声明,变量类型操作根据需求不同而不同

#!/bin/bash
a=2345
echo "a=$a"
let "a+=1"  #计算a=a+1
echo "a+1=$a"  #2346
echo 

b=${a/23/BB}  #用BB代替a中的23,因此自动转换为字符串类型
echo "b=$b"   #BB46

let "b+=1"    #b是字符串,所以+1 转换为1
echo "b+1=$b"   #b=1
echo

c=BB34
echo  "c=$c"
d=${c/BB/23}   #将BB用23代替,自动转换为整型
echo "d=$d"
let "d+=1"
echo "d+1=$d"    #d+1=2335
echo

#如果e是null
e=""
echo "e=$e"
let "e++"
echo "e++,e=$e"    #e=1
echo

#如果未声明的变量呢
echo "f=$f"
let "f++"
echo "f++,f=$f"    #f=1
echo

exit 0

4.关于if,$0,$1,$2

#!/bin/bash
#输入参数$1 $2 $3,$0代表脚本自己
if [ $# -ne 2 ] ;			#如果输入脚本参数数量不等于2
then
	echo "Usage:$0 string file";
	exit 1;
fi

grep  $1 $2   ;   		#在($2文件)中找$1
if [ $? -ne 0 ] ;			#上一个命令成功,则$?=0.否则为1(失败)或2(出错)
then
	echo "Not find \"$1\" in $2";
	exit 1;
fi

echo   "Find \"$1\" in $2";
exit 0;

运行: bash test.sh hello data.txt

4.关于while和for

while读取多个文件,并cat输出内容

#!/bin/bash
while [ $# -ne 0 ] ;
do
   cat $1
   shift             #默认shift 代表shift1,即将$1丢弃,S2赋值给$1,依次类推
done

or

#!/bin/bash
for file in $*
do  
  cat $file
done

运行  chmod +x test.sh       ./test.sh data.txt data1.txt

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值