php shell脚本参数个数_shell脚本读取xml参数个数 - CSDN
精华内容
参与话题
  • Shell脚本

    万次阅读 2020-10-04 20:29:52
    这里写目录标题Shell脚本1.Shell脚本简介2.Shell2.1 Shell 脚本的解释器2.2 脚本的编写规范2.3 执行脚本的三种方式2.4变量的声明2.5变量的引用2.6删除变量 只读变量2.7字符串使用2.8字符串长度及截取2.9脚本参数传递...

    Shell脚本


    1.Shell脚本简介

    Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。Shell 既是一种命令语言,又是一种程序设计语言。Shell script 是一种为 shell 编写的脚本程序。Shell 编程一般指 shell脚本编程,不是指开发 shell 自身。Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的 Shell 解释器 种类众多,一个系统可以存在多个 shell,可以通过 cat /etc/shells 命令查看系统中安装的 shell解释器。Bash 由于易用和免费,在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。

    2.Shell

    2.1 Shell 脚本的解释器

    /bin/sh
    /bin/bash
    /sbin/nologin
    /bin/dash
    /bin/tcsh
    /bin/csh
    

    2.2 脚本的编写规范

    首行描述解释器 #!/bin/bash

    2.3 执行脚本的三种方式

    1、bash 脚本名称 脚本参数
    2、 sh 脚本名称 脚本参数
    3、 ./脚本名称 脚本参数【./脚本名称之间没有空格】【chmod 777 脚本名称】

    2.4变量的声明

    变量名=”值”【中间不能有空格】
    变量名要求 字母或下划线或数字(开头不能是数字)构成

    2.5变量的引用

    使用$ 或 ${}引用变量

    2.6删除变量 只读变量

    删除 unset 变量名
    只读 readonly 变量名

    2.7字符串使用

    双引号(””):内部可以使用变量
    单引号(‘’):内部所有的原样输出
    反引号(``):表示可执行

    2.8字符串长度及截取

    长度: echo ${#skill}
    截取: echo ${str:2:2} 【在第二个字符开始截取截取两位】

    2.9脚本参数传递

    bash 脚本名 参数1 参数2 参数3 。。。。。。
    脚本内
    $0 脚本名称
    $1 参数1
    $2 参数2
    $n 参数n
    $* 所有参数
    $# 参数的个数

    2.10算数运算符

    加法计算 expr 2 + 2
    乘法计算 expr 2 \* 2

    2.11流程控制if

    if [ $a -gt 10 ];then
    代码1
    elif [ $a -lt 10 ];then
    代码2
    else 代码3
    fi

    2.12关系运算符

    在这里插入图片描述

    2.13循环

    For 循环
    For aa in XXXX
    do
    循环体
    done

    While循环
    While 条件 ;
    do
    循环体
    done

    跳出循环
    跳出所有循环 break
    跳出当前循环,进入下一次循环 continue

    case ()

    case 值 in
    结果1) 结果1对应的操作;;
    结果2) 结果2对应的操作;;
    结果3) 结果3对应的操作;;
    esac

    2.14接收控制台数据

    read 变量名
    函数的使用
    函数声明:
    [function] 函数名(){
    函数体
    $参数1
    $参数2
    $参数3
    }

    函数调用 函数名 参数1 参数2 参数3

    2.15数组

    数组声明: 数组名称=(元素1 元素2 元素3 元素4)
    数组的使用
    单个使用 echo 数组名[角标] 【角标从0开始】
    遍历数组
    for var in ${my_arr[*]}
    do
    echo $var
    done

    2.16文件加载

    在文件中添加 . 脚本名称 或者 source 脚本名称
    #!/bin/bash
    source ./test1.sh # 加载test1.sh 的文件内容

    展开全文
  • shell调用php脚本,并传递参数

    千次阅读 2013-06-28 15:34:00
    命令行执行带参数php脚本,并取得参数 张映 发表于 2011-07-15 分类目录: php 一,为什么我们要在命令行下运行php脚本呢? 个人理解,主要有二原因: 1,利用crontab去跑php,可以给服务器...

    http://blog.csdn.net/yaochunnian/article/details/8194189


    命令行执行带参数的php脚本,并取得参数

    张映 发表于 2011-07-15

    分类目录: php

    一,为什么我们要在命令行下运行php脚本呢?

    个人理解,主要有二个原因:

    1,利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高。比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力。

    2,就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在crontab去执行,一天跑一次就行了。而不是手动去执行php程序。

    二,命令行下执行带参数php,并取得参数

    有一点很重要,就是命令行下执行php,是不走apache等这类东西的,没有什么http协议,所有get,post传参数根本不起作用,并且还会报错,如下:

    zhangying@ubuntu:~$ php test.php?aaa=bbb

    Could not open input file: test.php?aaa=bbb

    般情况下,不需要向定时跑的php脚本传参数,但有的时候,是要的。

    1,test.php测试文件,很简单吧

    1. <?php  
    2. print_r($argv);  
    3. echo "\n";  
    4. echo $argc;  
    5. echo "\n";  
    6. ?>  

    2,命令行下调用

    1. zhangying@ubuntu:~$ php test.php aaa ccc  bbbb  
    2. Array  
    3. (  
    4.  [0] => test.php    //参数0,文件本身  
    5.  [1] => aaa         //参数1  
    6.  [2] => ccc         //参数2  
    7.  [3] => bbbb        //参数3  
    8. )  
    9.   
    10. 4      //$argc的值,参数的总数  

    这种传参的方式,根shell脚本真的很像,

    zhangying@ubuntu:~$ sh c1.sh aaa bbb

    我向c1.sh传了二个参数aaa bbb,shell会得到三个参数,$0为文件本身,$1为参数1,$2为参数2。不同的是,php得到的是以数组的形势,而shell不是。


    展开全文
  • shell脚本赋值的5种方法

    万次阅读 2012-02-21 12:44:31
    1. Shell中的变量类型 Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、 2. 环境变量 Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由...
    1.  Shell中的变量类型
    

    Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、

    <!--[if !supportLists]-->2.  <!--[endif]-->环境变量

    Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由系统统一命名。部分系统变量的值由系统设定,部分环境变量的值可以由用户给定。

    环境变量的名称由大写字母组成,常用的Shell环境变量如下所示:

     

    HOME: 用户主目录的全路径名,cd $HOME 即可切换到用户的主目录

    PATH: 类似于windows下的路径,Shell会在里面依次寻找二进制的可执行文件。

           echo $PATH可以显示当前的PATH,添加新的PATH方法 $PATH=$PATH:新PATH

    TERM:  终端类型 echo $TERM

    PS1:   提示符,root用户默认为#,普通用户默认为$

    SHELL: Shell解释器的绝对路径

    LOGNAME: 登录用户的用户名

    UID:  当前用户的UID    echo $UID

    <!--[if !supportLists]-->3.  <!--[endif]-->位置变量

    位置变量是根据出现在命令行上的参数的位置确定的变量,在调用Shell程序的命令行中,参数的位置定义如下所示。

       $命令  参数1   参数2  参数3

    其中  $0  对应  执行的命令名

          $1  对应  参数1

          $2  对应  参数2

          $3  对应  参数3

    一定要搞清楚顺序!!

    <!--[if !supportLists]-->4.  <!--[endif]-->预定义的特殊变量

    预定义的特殊变量有着特殊的含义,用户不可以更改,所有的预定义变量都由“$”符号和另外一个符号组成,常用的预定义特殊变量如下所示

    $#: 位置参数个数(不包括Shell脚本名)

    $*:  位置参数组成的字符串

    $!:   上一个后台命令对应的进程号

    $?:   上一个命令的退出状态,为十进制数字,如果返回为0,则代表执行成功。

    $$:   当前的进程号PID

    <!--[if !supportLists]-->5.  <!--[endif]-->用户自定义变量 (大小写敏感

    要求: 变量名由字母或者下划线开头,后面跟任意数量的字母、数字、下划线。

    合法的:

         _name    SIZE    my_idea

    非法的:

         2god      !name   hello&world

    <!--[if !supportLists]-->6.  <!--[endif]-->变量的创建

    有两个内置的命令declare 和 typeset 可用于创建变量。通过命令的选项设置还可以设定变量的创建方。

    除了使用内置命令来创建和设置变量外,还可以直接赋值,格式为:

    变量名=变量值

       注意:变量名前面不应加美元“$”符号。(和PHP不同)

             等号“=”前后不可以有空格。

             和C语言不同,Shell中不需要显式的语法来声明变量。

             变量名不可以直接和其他字符相连,如果想相连,必须用括号:echo “this is $(he)llo!”

    <!--[if !supportLists]-->7.  <!--[endif]-->变量的删除

    系统提供unset命令可以删除变量,例如

      unset  name

    <!--[if !supportLists]-->8.  <!--[endif]-->变量的赋值

    变量的赋值有五种:使用read命令,直接赋值,使用命令行参数,使用命令行的输出结果,从文件读取。

    先说一下从read命令吧:(主要是在需要交互时使用

    Read命令是系统内置命令,语法格式为:

    read  变量1   变量2

    当Shell脚本执行到read命令时,将暂停脚本的执行并等待键盘的输入,当用户输入完毕并且敲下回车之后,将完成赋值操作,脚本继续执行。

    Read指令的规则:

    <!--[if !supportLists]-->l  <!--[endif]-->多个数据或变量之间用空格隔开

    <!--[if !supportLists]-->l  <!--[endif]-->若变量个数与数据个数相等时,对应取值

    <!--[if !supportLists]-->l  <!--[endif]-->若变量个数大于数据个数时,没有输入数据的变量取空值

    <!--[if !supportLists]-->l  <!--[endif]-->若变量个数小于数据个数时,将多余的数据赋给最后一个变量(也就是把空格当成字符串处理)

    例子:

    #!/bin/bash

    echo –n “ please enter your name”  //-n 表示用户输入和提示信息在同一行

    read name

    echo “your name is $name”

       

    #!/bin/bash

    echo “Please  enter  your  first name  and last name :”

    read first last

    echo “your first name is $first”

    echo “your last name is $last”

    第二种赋值方法就是直接给变量赋值(这种赋值方法主要是在不需要交互时,并且参数不需要修改时使用

    例如:name=xiaosu

          gender=man

    第三种赋值方法是使用命令行参数赋值。(这种赋值方法是参数需要经常变化,并且不需要交互时使用

    这种赋值方法,也就是直接在命令后面跟参数,然后系统用$1来引用第一个参数。

    第四种方法是利用命令的输出结果赋值(这种赋值方法可以直接处理上个命令产生的数据

    在Shell程序中,可以将一个命令的输出结果来当做变量,不过需要在赋值语句中使用反引号

    例如currentdir=`pwd`

         echo $currentdir

    最后一种赋值方法是从文件中读入数据

    这种方式就适合处理大批量的数据,直接把相应的数据写入文件,然后运行脚本即可。

    通常是通过while循环一行行读入数据,即没循环一次,就从文件中读取一行数据,直到读取到文件的结尾。

    例如:

    #!/bin/bash

    ls *.sh >execfile

    while read LINE

    do

    chmod a+x $LINE

    done<execfile

    这个脚本使用了while..do..done 结构,最后一行表示从文件execfile读取数据。while read LINE表示 每次循环读入一行数据并赋值给变量LINE。

    <!--[if !supportLists]-->9.  <!--[endif]-->变量的输出

    最简单的方法就是使用echo

    如果想输出格式化的字符串,就需要使用printf,用法和C语言类似

                printf 命令的格式说明符

    \”    输出双引号

    \\    输出反斜杠

    \a    响铃

    \n    换行

    \r     回车


    展开全文
  • shell脚本中,怎么定义函数及使用函数呢? 函数定义: # func_name 函数名 function func_name(){ #函数体内容 } 或 # func_name 函数名 func_name(){ #函数体内容 } 函数调用: func_name parm  函数
    在代码复用及可维护性方面,函数有着巨大的优势,因此,把常用功能封装成函数是一件非常平常的事。shell脚本中,怎么定义函数及使用函数呢?
    函数定义:

    # func_name 函数名  
    function func_name(){
    	#函数体内容
    }
    或
    # func_name 函数名
    func_name(){
    #函数体内容
    }
    函数调用:

    func_name parm 

    函数体中,可以通过$1 $2 ...$9接受函数调用中的变量

    函数可以通过return 返回函数执行的结果

    可以通过下面一个简单例子,来看下在shell脚本中怎么定义使用函数

    1、在/root/bin目录下新建函数文件main.fun

    vim /root/bin/main.fun  

    2、在main.fun文件中编写函数findit内容

    #!/bin/sh
    function findit(){        
    	if [ $# -lt 1 ] ; then  #判断函数参数个数               
    	 echo "Usage: findit filename"               
    	 return 1        
    	fi	    
    	for loop #遍历调用函数的参数          
    		do
    	                find $HOME -name $loop -print
    	        done    
    	return 0
    }

    3、Shell中载入函数文件/root/bin/main.fun

    . /root/bin/main.fun

    4检查载入文件
    set 

    set命令将在shell中显示所有的载入函数

    5、调用函数

     findit mysql php #在home 目录查找文件mysql 和文件php






    展开全文
  • Linux 执行定时任务 shell脚本

    万次阅读 2017-12-26 11:42:10
    Linux上面执行定时任务,我们可以利用crontab -e直接编辑定时任务 另外我们还可以写好shell脚本,定时去执行shell脚本,这两方法都可以起到定时执行的作用 下面我详细说一下入如何执行shell脚本 1.声明一下我...
  • shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。 在shell怎么获取一文件或目录的绝对路径呢? 也许你会立马想到realpath(如果你写过php的话),那么shell支持这命令吗?看...
  • linux下使用shell发送http请求

    万次阅读 2017-11-23 10:29:42
    本文主要介绍如何在linux下使用shell发送http请求。一、curl1. get请求curl命令默认下就是使用get方式发送http请求。curl www.baidu.com2. post请求使用-d参数,形式如下:curl -d "param1=value1¶m2=value2" ...
  • 文章目录1.shell简介1)什么是shell2)shell脚本3)运行shell脚本4)shell注释5)shell编写的基本步骤2.shell变量1)命名变量2)使用变量3)变量类型3)变量操作3.shell字符串1)字符串类型2)字符串操作4.shell数组...
  • Shell运维脚本学习整理

    千次阅读 多人点赞 2018-09-15 21:49:41
    运维常用命令 LINUX运维常用命令详解一 LINUX运维常用命令详解二 LINUX运维常用命令...grep、sed、awk命令使用参数说明 20高效正则表达式 shell基础 Shell基础知识及字符处理 Shell表达式与运算符 shell脚...
  • Centos7下shell脚本添加开机自启动

    万次阅读 2018-07-20 10:24:55
    添加开机自启脚本,注意都需要用绝对路径 psubscribe.sh脚本中的内容: nohup /usr/bin/php -f /data/aliyun51015cn/redisChannel/psubscribe.php &gt; psubscribe.log &amp;   1、赋予脚本可执行...
  • 什么是Shell

    千次阅读 2018-08-10 21:41:23
    Shell 是一用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这应用程序提供了一界面,用户通过这界面访问操作系统内核的服务。...
  • SHELL与空格

    千次阅读 2019-02-24 20:55:12
    本文详细剖析了shell脚本参数传递机制,并以多代码示例解析了如何处理参数带空格的情况,还有关于$@和$*变量用法的分析。
  • shell脚本生成文本文件

    万次阅读 2016-10-08 17:08:43
    shell脚本生成文本文件 17 December 2014 在Linux上写shell脚本的一很重要的意图是自动化。假如我们希望自动生成一具有特定内容的文本文件,应该怎么实现呢? 我用过两方法,下面分别举例说明。为了更...
  • 其实这要是用C或C++或java或javascript,我想很多人都能很快就能写出来,如果在shell编程时写这么 一东西,如果觉得有点别扭的话,那可能是你接触的还比较少吧~~~~~其实很多东西都是写着写着就习惯了 #!/bin/...
  • [shell]shell简介

    万次阅读 2018-07-11 12:02:21
    一、简介 Shell 是一用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这应用程序提供了一界面,用户通过这界面访问操作系统内核...
  • Linux下用crontab执行定时任务不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错。 这是因为用户登陆Linux操作系统的时候,”/...
  • Shell之传递脚本参数与数组

    千次阅读 2017-08-14 14:11:10
    我们可以在执行 Shell 脚本时,向脚本传递参数脚本内获取参数的格式为:$n。n 代表一数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三个参数,并分别...
  • xargs 接受参数 -d (分隔符), -n(每次传递的参数个数),-p每次确认完整指令。   1, 查找文件并删除。三种办法: 使用xargs -https://www.cnblogs.com/wangqiguo/p/6464234.html find /etc -name *php* | ...
  • Shell 概述

    千次阅读 2016-08-26 00:29:57
    简介Shell 是一用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这应用程序提供了一界面,用户通过这界面访问操作系统内核的服务。 ...
1 2 3 4 5 ... 20
收藏数 35,533
精华内容 14,213
关键字:

php shell脚本参数个数