Shell编程
文章平均质量分 69
Shell编程
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
scan724
这个作者很懒,什么都没留下…
展开
-
sed 变量传递
sed原创 2022-12-10 14:48:54 · 709 阅读 · 1 评论 -
awk 拼接双引号
[app@20201225]$ echo 'xx xx xx' | awk '{print "insert into test100 values(" "\""$1"\"," "\""$2"\"," "\""$3"\");"}'insert into test100 values("甘xx","x","x");原创 2020-12-25 20:12:57 · 559 阅读 · 0 评论 -
shell 输出到数组
top_cmd_line=(top -H -b -d 0.5 -n 2)top_out=$(${top_cmd_line[@]})echo $top_out原创 2020-05-09 14:30:42 · 1881 阅读 · 0 评论 -
awk 拼接引号
rm -rf "./recv3133360715752019082956343852 hvps.111.001.01.log"rm -rf "./recv4027310572382019091221480953 hvps.111.001.01.log"rm -rf "./recv4027910000102019092918498297 hvps.111.001.01.log...原创 2020-11-30 20:40:46 · 442 阅读 · 0 评论 -
awk 打印列数
node2:/root#cat aa11|22|33|rrnode2:/root#awk -F '|' '{a+=NF}END{print a}' aa 4原创 2018-07-23 11:21:52 · 11528 阅读 · 0 评论 -
awk RS ORS
[root@db01 ~]# cat 11"xx利杰" ,"xx" ,[root@db01 ~]# awk 'BEGIN{RS=",";ORS="\n"}{print $0}' 11"xx" "tt" [root@db01 ~]# awk 'BEGIN{RS=",";ORS="\n"}{print $0}' 11 | awk -F '<' '{print $2}' |awk -原创 2020-11-30 20:29:35 · 450 阅读 · 0 评论 -
shell continue 跳出循环问题
[mysql@master ~]$ cat a2.sh for ((i=1;i<=5;i++))doecho "\$i is $i"; for ((j=1;j<=5;j++)) doif [ $j = 3 ] thencontinuefi echo "\$j is $j" donedone[mysql@master ~]$ sh ./a2.sh $i is原创 2015-04-13 09:24:11 · 1878 阅读 · 0 评论 -
shell 中的continue
cat name.txt | while read Adoif [ $A -ne 5 ]thenecho $Aelseecho 我要跳过continuefidonejrhmpt01:/root# sh ./a1.sh 1234我要跳过678910原创 2016-02-05 20:08:59 · 1284 阅读 · 0 评论 -
linux 使用expect
user=rootip=1.1.1.1passwd=1111expect<<!spawn ssh $user@$ipexpect { "(yes/no)?" { send "yes\n" expect "assword:" send "$passwd\n" } "assword:" { se原创 2015-06-29 19:37:44 · 481 阅读 · 0 评论 -
Linux 监控每秒网卡流量
#! /bin/bash . ~/.bash_profile#Author: Vogts WangTao 2008-12-18 #Get summry info host2=` /sbin/ifconfig eth0 | grep inet | awk -F ':' '{print $2}' | awk '{print $1}'`echo "Current Ip: "`/sbin/ifc原创 2015-06-26 23:15:22 · 972 阅读 · 0 评论 -
continue 循环直接跳到外层
[root@master sh]# cat 1.sh count=1 while true do i=1 j=1 if [ $i = 0 ] && [ $j = 0 ] then exit 0 else echo 2222222 if [ $i = 1 ] && [ $j = 0 ] then ex原创 2015-06-17 16:47:55 · 1394 阅读 · 0 评论 -
awk 字段匹配
[oracle@oadb ~]$ cat aadd 99dd9 88ee 88ff dd[oracle@oadb ~]$ awk '{if ($1=="dd") print $0}' aadd 99[oracle@oadb ~]$ [oracle@oadb ~]$ [oracle@oadb ~]$ awk '{if ($1=="dd") print $0}' aadd转载 2017-01-24 13:58:32 · 3744 阅读 · 0 评论 -
awk if 判断
[oracle@oadb ~]$ cat aa1 2 3 aa4 5 6 aa7 8 9 cc10 11 12 dd[oracle@oadb ~]$ cat aa | awk '{if ($NF !~/'aa'/) print $0}'7 8 9 cc10 11 12 dd[oracle@oadb ~]$ cat aa | awk -F ' ' '{if ($NF =="aa"...原创 2020-11-30 22:30:28 · 2807 阅读 · 0 评论 -
awk 拼接字符
ORACLE 11g 新增了一个参数:deferred_segment_creation,从字面理解含义是段延迟创建,该参数取值范围是true和false,默认是true。具体是如果deferred_segment_creation为true,当新建表并且没有向其中插入数据的时候,这个表不会立即分配extent,即不占数据空间,只有insert数据后才分配空间,这样做可以节省少量的空间。如果def原创 2020-11-30 23:02:02 · 3366 阅读 · 0 评论 -
sed 处理
[esb@esbapp6 20180410]$ cat pp2.sh cat pp | while read Adoa=`expr $A - 10`echo "sed -n 'x,yp' esb20180412" | sed "s/x/$a/g" | sed "s/y/$A/g"done[esb@esbapp6 20180410]$ cat tt2.ssed -n '4,5p'...原创 2018-04-13 11:18:58 · 237 阅读 · 0 评论 -
awk 替换指定列的空格
node2:/root#cat bbaa | bb |ccnode2:/root#node2:/root# awk 'BEGIN{FS=OFS="|"}{gsub(/ /,"",$2);print $0}' bb>ccnode2:/root#cat ccaa |bb|cc原创 2018-07-23 13:00:28 · 3332 阅读 · 0 评论 -
tr 删除换行
[oracle@oadb ~]$ cat -n a2.sh 1 sh ./xx.sh select * 2 from 3 test[oracle@oadb ~]$ cat a2.sh | tr "\n" " "sh ./xx.sh select * from test [oracle@oadb ~]$原创 2018-10-14 16:49:35 · 1027 阅读 · 0 评论 -
shell 正则匹配
[ucd@ucd1 svnVersion]$ cat a4.sh java_version='1.8.2';if [[ $java_version =~ ^1.8 ]] then echo 'aaaaaaaaaa'else echo 'bbbbbbbbb'fi[ucd@ucd1 svnVersion]$ [ucd@ucd1 svnVersion]$ sh ./a4.s...原创 2019-04-18 15:25:54 · 1942 阅读 · 0 评论 -
shell 正则匹配字符
[root@yyjk tmp]#cat a1.shaaa='20190401.zip'if [[ "$aaa" =~ ^[0-9]{4}[0-9]{1,2}[0-9]{1,2}\.zip$ ]]; then echo 'aaaaaaaaaaaaaaa'else echo 'bbbbbbbbbbbbbbbb'fi[root@yyjk tmp]#sh ./a1.shaaaaaaa...原创 2019-04-18 16:51:03 · 3334 阅读 · 0 评论 -
shell中#*,##*,#*,##*,% *,%% *的含义及用法 替换字符
介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。假设定义了一个变量为:代码如下:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 / 及其左边的字符串:my...原创 2019-04-18 17:18:41 · 3989 阅读 · 0 评论 -
奇怪的for 循环
[mysql@master ~]$ cat a1.sh for file doecho $filedone[mysql@master ~]$ sh ./a1.sh 1 2 3 4 5 6123456相当于[mysql@master ~]$ cat a1.sh for file in $@ doecho $filedone[mysql@master ~]$原创 2015-04-13 09:43:28 · 511 阅读 · 0 评论 -
shell shift 移动参数
[mysql@master ~]$ cat 2.sh case "$1" in --no-defaults|--defaults-file=*|--defaults-extra-file=*) defaults="$1"; shiftecho $defaults ;;esac[mysql@master ~]$ sh ./2.sh --defaults-fil原创 2015-04-13 08:40:01 · 550 阅读 · 0 评论 -
AIX 计算时间差shell
#!/bin/bash#取年份2008YEAR1=$(echo $1|cut -d- -f1) #取年份2010YEAR2=$(echo $2|cut -d- -f1)DAYNUM=YEARDAY () {#判断闰年#标准如果能被400整除那么为闰年#如果能被4整除且不能被100整除那么是闰年if [ $# -ne 1 ];then echo "Usage: $0 y原创 2014-08-25 22:40:17 · 3443 阅读 · 0 评论 -
AIX 计算今年过了多少天了
#取系统时间YEARDAY () {#判断闰年#标准如果能被400整除那么为闰年#如果能被4整除且不能被100整除那么是闰年if [ $# -ne 1 ];then echo "Usage: $0 year" exit 1;fiFYEAR="$1"if [ `expr ${FYEAR} % 400` -eq 0 ];then FRUN="366"else原创 2014-08-25 22:45:46 · 999 阅读 · 0 评论 -
AIX 取指定天前的日期
#取系统时间LOGBACKUPDATE=`date "+%Y-%m-%d"`echo $LOGBACKUPDATE BACKYEAR=`echo $LOGBACKUPDATE|awk -F'-' '{print $1}'` BACKMONTH=`echo $LOGBACKUPDATE|awk -F'-' '{print $2}'` BACKDAY原创 2014-08-25 22:38:10 · 3967 阅读 · 0 评论 -
Shell 文件描述符
linux中使用文件描述符来标识每个文件对象。文件描述符为一个非负整数,可以唯一标识会话中打开的文件。每个过程最多可以有9个文件描述符。 linux使用的标准文件描述符: 标准输入STDIN就是0,标准输出STDOUT就是1,标准错误输出STDERR就是2。而我们也可以自己创建文件描述符3~8。 将今天看到的一段代码:1 #!/bin/bash2 exec原创 2014-08-09 10:34:31 · 816 阅读 · 0 评论 -
linux 批量创建用户
[root@jhoa ~]# cat expect.sh while read linedouser=`echo $line | awk '{print $1}'`ip=`echo $line | awk '{print $2}'`passwd=`echo $line | awk '{print $3}'`expect expect2.exp $user $ip $passwddon原创 2014-08-05 10:35:09 · 934 阅读 · 0 评论 -
awk 使用技巧
仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk 'BEGIN{FS="|"}{for (i=1;i<=NF;i++) print length($i)}' 1.txt1133仓库DB-ORACLE /home/dwetl/perl_script/CBS> awk -F '|' '{for (i=1;i<=NF;i++) print length(原创 2014-07-08 10:39:32 · 583 阅读 · 0 评论 -
expect 传参
set timeout -1puts "Start"set i 1spawn reloadtuxconfigwhile {"$i" < 13} {expect { ":" {send "czcb7753\r";}}incr i}XXXXXXX(A)/app/cbsrun/sbin> expect 2.shStartspawn reloadtuxconfigP原创 2014-05-13 13:21:38 · 732 阅读 · 0 评论 -
Shell continue循环
[oracle@june ~]$ cat continue.sh for i in a b c d e f gdoif [ "$i" = "c" ]thenecho xxxxxxxxxxxxxxecho "跳过的字符为"$icontinuefidone[oracle@june ~]$ sh -x ./continue.sh + for i in a b c d e f g原创 2014-05-13 10:12:50 · 564 阅读 · 0 评论 -
Shell循环处理
date=`echo $1 | tr -d '-'`date1=`echo $1`date_end=`get_date $2 +1 | sed 's/-//g'`while [ 1 ]dodateecho $date1 if [ ! -d "/home/dataun/ETL_init/DATA/$date1/BICA/" ] thenecho "开始创建"原创 2014-05-13 09:37:38 · 615 阅读 · 0 评论 -
awk 取当前目录下最大文件
[oracle@jhoa ~]$ ls -ltr | grep ^- | awk '{print $5,$NF}' | awk '$1>max {max=$1;a=$NF}END{print max,a}'15620321335 nohup.out原创 2014-08-26 11:21:09 · 1256 阅读 · 0 评论 -
清理一个月前的日志
. ~/.bash_profile#用于删除上一个月的日志#后来发现LINYX上取上一个月直接可以date -d "-1 month" +%m悲剧export LANG=en_US#定义清理日志路径CLEAR_PATH="/oracle/app/diag/rdbms/dwh/dwh/trace/"MONTH=`date +"%m"`#echo $MONTHif test "$MON原创 2014-08-18 09:49:41 · 1024 阅读 · 0 评论 -
利用perl 改写awk统计
[root@dwh1 log]# whodwetl pts/0 2015-03-05 16:29 (10.130.136.56)dwetl pts/1 2014-12-12 20:41 (10.129.133.154)dwetl pts/2 2015-03-09 15:57 (10.129.224.28)root pts/原创 2015-03-10 21:15:40 · 656 阅读 · 0 评论 -
累加IP地址
[root@june3 ~]# cat log.txt 10.1.1.1:aa10.1.1.1:aa10.1.1.1:aa1.1.1.1:bb1.1.1.1:bb1.1.1.1:bb1.1.1.1:bb2.2.2.2:cc2.2.2.2:cc2.2.2.2:cc2.2.2.2:cc2.2.2.2:cc2.2.2.2:cc22334455223344552233445原创 2015-02-15 19:46:28 · 798 阅读 · 0 评论 -
exit 和 return
exit [n] Cause the shell to exit with a status of n. If n is omitted, the exit status is that of the last command executed. A trap on EXIT is executed before the shell ter-minates.设原创 2015-02-05 21:45:50 · 606 阅读 · 0 评论 -
kill 某个进程
#!/bin/bashif [ "$#" -ne 1 ];thenecho "please input your process"elseecho -n "Do you need to kill these process(y|n):";echops -ef | grep -v grep | grep $1read ANScase $ANS iny|Y)kill -9 `ps原创 2015-02-05 10:22:08 · 522 阅读 · 0 评论 -
Shell函数 传递多个参数
v_par_date='2014-12-31'dlt_table() {sqlplus dwm/dwm@dwh1<<!delete from $1.$2 where set_date=date'$3';commit;exit!}dlt_table dwm "M_COMC_SUBJ_CODE_TRAN_PARA_H" "$v_par_date" &dlt_table dwf "F原创 2014-12-11 21:13:25 · 4021 阅读 · 0 评论 -
Oracle不删除用户,导入数据
###不删除用户,导入数据dd (){sqlplus / as sysdba <<! set echo off; set feedback off; set heading off; set pagesize 0; set termout off; set trimout on; set trimspool on; set li原创 2014-12-05 11:11:46 · 715 阅读 · 0 评论 -
调存储过程shell
#!/bin/ksh################################################################################# 脚本名称 : runjob_ora_proc.sh# 描述 : 调用ORACLE存储过程接程序# 参数描述 : v_proc_name 存储过程名#原创 2014-10-21 08:48:43 · 2200 阅读 · 0 评论