精华内容
参与话题
问答
  • 例子:  boolean execResult = true; BufferedReader br = null; try { //linux脚本test.sh需要另个入参(可以有0或多个参数) String account = "test" String pwd = "12345"; S...

    例子:


            boolean execResult = true;
            BufferedReader br = null;
            try
            {
                //linux脚本test.sh需要另个入参(可以有0或多个参数)
       String account = "test"
                String pwd = "12345";
       String shellPath = "...脚本的实际路径"
                ProcessBuilder b = new ProcessBuilder("sh", "test.sh", account,
                        password);
                b = b.directory(new File(shellPath));
                Process rt = b.start();
               
                String line = "";
       //脚本返回的信息流
                br = new BufferedReader(new InputStreamReader(rt.getInputStream()));
               
                while (null != (line = br.readLine()))
                {
                    //对结果做处理
                }
               
               
                rt.destroy();
            }
            catch (Exception e)
            {
                execResult = false;
            }
           
            finally
            {
                if (null != br)
                {
                    IOUtils.closeQuietly(br);
                }
            }
           

     

    java5引入了ProcessBuilder类,该类的功能于Runtime.exec系列方法相同,都是启动一个进程。
    主要区别是:ProcessBuilder是可以更好控制启动的进程,且可以重用;但是exec方法没有这种效果;
    ProcessBuilder是从1.5加进来的,而exec系列方法是从1.0开始就有的,后续版本不断的重载这个方法,到了1.5已经有6个之多。
    但是,官方的api没有任何文档说明这个两个区别,我想主要的是OO的思想,导致了这个新类的产生,功能上没什么变化
    具体内容可以参见java5的api文档或者java in a nutshell


    使用ProcessBuilder的例子

    package net.java2000.util;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Arrays;

    public class TestProcessBuilder {
     public static void main(String args[]) throws Exception {
      ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "dir");
      builder.directory(new File("e:/"));
      Process process = builder.start();
      InputStream is = process.getInputStream();
      InputStreamReader isr = new InputStreamReader(is, "GBK");
      BufferedReader br = new BufferedReader(isr);
      String line;
      System.out.printf("Output of running %s is:", Arrays.toString(args));
      while ((line = br.readLine()) != null) {
       System.out.println(line);
      }
     }
    }

      总结:

      ProcessBuilder为进程提供了更多的控制,例如,可以设置当前工作目录,还可以改变环境参数。而Process的功能相对来说简单的多。

      ProcessBuilder是一个final类,有两个带参数的构造方法,你可以通过构造方法来直接创建ProcessBuilder的对象。而 Process是一个抽象类,一般都通过Runtime.exec()和ProcessBuilder.start()来间接创建其实例

     

    http://www.cnblogs.com/taven/archive/2011/12/17/2291460.html

    展开全文
  • 读取多个目录下的本地文件,多个目录通过循环遍历的方式,以参数传递: #!/bin/bash i=0while [ $i -lt 10000 ] do echo "i=$i" spark-submit --class ...

    读取多个目录下的本地文件,多个目录通过循环遍历的方式,以参数传递:

    #!/bin/bash

    i=0
    while [ $i -lt 10000 ]
    do
    echo "i=$i"
    spark-submit --class com.link.fblx.readFromPath --driver-memory 20G --executor-memory 20G --num-executors 1 --executor-cores 25 --total-executor-cores 25 --jars jsoup-1.8.1.jar /root/sparkdemo_jar.jar file:///home/zl/data/$i/* /test/zl/fblx_link/20190109/output$i
    ((i++))
    done

    转载于:https://www.cnblogs.com/tianziru/p/10245463.html

    展开全文
  • 使用场景,大数据平台azkaban任务中通过shell脚本调用sql文件(尤其是调用多个sql时),希望可以传参到sql文件中 方法:本例以sh调用hive命令执行sql为例,道理相同 1、sh 文件中执行hive -f 命令 将inputdate传给...

     

    使用场景,大数据平台azkaban任务中通过shell脚本调用sql文件(尤其是调用多个sql时),希望可以传参到sql文件中

    方法:本例以sh调用hive命令执行sql为例,道理相同

    1、sh 文件中执行hive -f 命令 将inputdate传给sql文件使用 如下

    hive -hiveconf input_date=`date +%Y-%m-%d` -f dm_f_count_assigned_user.sql

    sh中 用 -hiveconf input_date=`date +%Y-%m-%d` 这个变量去传值

    如果此处执行多次语句 也可以将input_date 作为变量提出来

    2、sql文件 获取input_date

    ALTER TABLE hive_dm.dm_f_count_assigned_user DROP IF EXISTS PARTITION (date_calculated='${hiveconf:input_date}');

    sql中 用' ${hiveconf:input_date}' 来接收

     

    提示,可以同时传多个值

          -hiveconf input_date=`date +%Y-%m-%d`

          -hiveconf usename=`groot`

          -hiveconf password=`qwertyu596`

     

    取值

         '${hiveconf:input_date}'

         '${hiveconf:usename}'

         '${hiveconf:password}'

     

    此处取值使用了 单引号,因为我想要字符串类型的值,也是大家最常用的。根据个人需要吧,如果你传的是int类型,取值时不使用单引号,应该可以直接取到int类型,直接进行大小比较,计算之类的。。。哈哈  这个没去细细研究。

    展开全文
  • 多任务:可以执行多个程序 系统是多用户多操作,cpu承载多个程序,一个核一次只能运行一个程序。 I7四核 I5双核 系统有很多个程序,操作系统中的某个程序决定什么时候开始,分清主次,谁重要,内核只是程序调度器...

    什么是内核:多用户多任务。多任务:可以执行多个程序
    系统是多用户多操作,cpu承载多个程序,一个核一次只能运行一个程序。
    I7四核 I5双核
    系统有很多个程序,操作系统中的某个程序决定什么时候开始,分清主次,谁重要,内核只是程序调度器。分配程序的优先级。

    shell:
    第三方软件和内核直接交流容易把内核改变了,使系统优先级被改变
    因为加个壳把内核保护起来,不让外界直接和他沟通,这个壳就是shell,即包裹内核的一层壳,过滤与内核交流的信息。

    脚本:shell脚本是系统和人和系统都能看懂的,不需要编辑,能够用文本名称运行的文本内容称为脚本。为了记录步骤,很多任务需要批量操作,都是重复的。
    所有程序都由两部分组成 一部分数据,一部分逻辑
    脚本是解释型语言,需要解释器。shell/python/perl

    C语言:描述性语言,只用编译 机器码 指针,栈
    C语言:代码,人能懂系统需要编译才能懂

    描述型(c语言)翻译,编译(翻译成系统认识的语言),不需要解释
    shell / python / perl
    >java javavm–> 字节码 \ 需要java虚拟机
    >C 语言 编译–> 机器码

    汇编和硬件契合度太高,兼容型太差
    c语言解决契合度太差的问题
    java 面向对象
    C 面向过程

    vim test.sh
    #!/bin/bash 幻数:脚本执行时最先开启的程序
    幻数不固定,写成什么命令就赋予脚本什么样的执行

    如何创建shell脚本:
    告诉别人是shell脚本 以.sh结尾 规范

    幻数 就是解释器 #!/bin/bash

    ########脚本执行四种方式:############

    (1)sh script.sh 开启新的子shell,调用脚本内命令,还可以使用bash等
    (2)source  script.sh不开启新的子shell  和.   是一样的
    (3).   script.sh 不开启新的子shell
    前三个都不需要加权限
    ps -f 和ps f的区别!
    
    chmod +x script.sh
    (4)./script.sh  相对路径也可使用绝对路径
    执行的是shell中#!后面的方式        新打开一个shell,需要加执行权限!!
    和/root/test.sh 一样的 .就表示根下
     幻数不固定,写成什么命令就赋予脚本什么样的执行
    

    (4)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (1)sh script.sh 开启新的子shell,调用脚本内命令,还可以使用bash等
    在这里插入图片描述
    在这里插入图片描述
    (2)source script.sh不开启新的子shell 和. 是一样的
    在这里插入图片描述
    在这里插入图片描述

    设置快捷脚本说明:
    制作脚本时,我们通常需要做一些说明,如写脚本的日期,版本等,但每次写脚本都要写这些东西都会浪费时间,因此我们可以设置使一个脚本可以快速生成这些解释内容。
    shell脚本上面写解释:
    vim /etc/vimrc
    在vim中自动加上前面的解释,自动添加解释
    (1)调用这种格式,可以对快捷键定义 map 影射
    快捷建F9调用函数WESTOS
    自动添加时间戳 在第三行
    注意:两部分中间用.连接

    编辑完:
    新vim
    按F9自动添加解释
    在这里插入图片描述
    在这里插入图片描述

    (2)不想用快捷键
    双引号注释
    用自动执行,新的文件里面 BUF新的特殊状态
    当以.sh结尾 exec执行
    编辑完:
    新的直接vim的,打开就有解释
    先touch就是已经有了,不会再加

    	" map <F9> ms:call WESTOS()<cr>'s   ##快捷键添加
    autocmd BufNewFile *.sh exec ":call WESTOS()"   ##自动添加
    function WESTOS()
        call append(0,"########################################")
        call append(1,"# Author:                              #")
        call append(2,"# Author:Create_Date:  ".strftime("%Y-%m-%d %H:%M")." #")
        call append(3,"# Version:                              #")
        call append(4,"# Mail:                                 #")
        call append(5,"# Description:                          #")
        call append(6,"#                                       #")
        call append(7,"#                                       #")
        call append(8,"##########################################")
        call append(9,"")
        call append(10,"#!/bin/bash")
    endfunction
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ###脚本的调式#########

    vim test.sh  
    #!/bin/bash
       date
       cal
       cat 
    chmod +x test.sh 
    ./test.sh   ##执行会卡住
    
    sh -x test.sh  ##带加号的是命令,不带加号的是输出
    进行对脚本 test.sh 进行调试 可以看到卡在哪条命令
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ####执行ip_show.sh 显示当前主机的ip地址

    vim ip_show.sh
       ifconfig eth0 | awk '/inet\>/{print $2}'
    sh ip_show.sh 
       172.25.254.111
    

    在这里插入图片描述
    在这里插入图片描述

    ####执行user_show.sh 显示的哪个前主机中能登陆系统的用户

    vim user_show.sh
       awk -F : '/bash$/{print $1}' /etc/passwd
    sh user_show.sh 
      root
     student
    

    在这里插入图片描述
    在这里插入图片描述
    ###执行host_message.sh 显示当前主机的名称,ip,以及能登陆系统所有用户

    vim host_message.sh
    #!/bin/bash
    echo "hostname:`hostname`"
    echo "host ipaddress:
                `ifconfig | awk '/inet\>/&&!/127.0.0.1/{print $2}'`"
    echo "Login user list:
    `awk -F : '/bash$/||/sh$/{print $1}' /etc/passwd| sed 's/^/             /g'`"
    
    
    sh host_message.sh 
    hostname:localhost
    host ipaddress:
    	   172.25.254.111
     192.168.0.111
    Login user list:
              root
              student
    

    在这里插入图片描述
    在这里插入图片描述
    ######clear_log.sh 执行命令后可以清空日志

    [root@localhost ~]# vim clear_log.sh
    #!/bin/bash
    [  "$USER" = "root" ]&&{
        > /var/log/messages
        echo -e "\033[32mclean /var/log/messages successful!!!\033[0m"
    }||{
        echo -e "\033[31mThis script must run with root !!!\033[0m"
    }
    [root@localhost ~]# sh clear_log.sh 
    [root@localhost ~]# cat /var/log/messages 
    
    切换到普通用户不可以执行该文件
    -e 动作
    0m属性关闭
    32红色
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    #############
    shell的变量
    以字母开头字母、数字和_的组合

    变量的定义:变量即在程序运行过程中它的值时允许改变的量
    变量时用一串固定的字符来标示不固定的值的一种方法
    变量时一种使用方便的占位符,用于引用计算机内存地址,该地址可以储存Script 运行时可更改的程序信息
    在shell 中变量是不能永久保存在系统中的,必须在文件中声明

    su 和 su - bashrc | profile

    $USER 变量 相对应变化的值

    在shell脚本中变量的种类
    在shell 中变量分为环境级变量,用户级变量,系统级变量
    环境级变量只在当前shell中生效,shell 关闭变量丢失
    用户级变量写在用户的骨文件中,只针对当前用户生效
    系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有的用户都生效

    变量使用方式:
    su - student 切换到环境
    su student 只切换用户,不切换环境。bashrc profile环境变量和shell配置环境
    su 加载配置bash,不会加载系统中的环境变量
    su - 加载/etc/bashrc 和系统环境变量 profile 对所有用户都可以

    环境级变量 export a=1
    只有当前shell才可以使用内存地址信息a = 1
    子shell无法加载
    export a=1共享
    断开连接信息被系统遗忘调
    用户 vim ~/.bash_profile = vim .bash_profile
    系统 vim /etc/profile
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述设置命令执行时读取的文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    转义 单个字符
    双因号  引用,可以是多个字符,不能引用""=! @ \ ' \
    单因号  强引用
    
    $()=``  表示执行
    $[]=(()) $[1+1]将可变长字符转换为整型(可变长字符:节省系统资源)
    ${} {}中的字母为变量
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    done 结束
    seq 1 5 = {1…5}
    在这里插入图片描述
    在这里插入图片描述

    ######执行create_user.sh文本的时候自动建立/mnt/userfile##########

    #!/bin/bash
    [ "$USER" != "root" ] &&{
         echo -e "\033[31mError:This script is run as root!!\033[0m"
         exit 0
    }
    
    [ -z "$1" ]&&{
        echo -e "\033[31mError:Please input userfile following script\033[0m"
        exit 0
    }
    [ -e "$1" ]||{
        echo -e "\033[31mError:$1 is not exist!!!!!\033[0m"
        exit 0
    }
    for USERNAME in `cat $1`
    do
        useradd $USERNAME &> /dev/null &&{
                echo -e "\033[32m$USERNAME is created\033[0m"
        }||{
                echo -e "\033[31m$USERNAME is exist!!\033[0m"
    }
    done
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ######执行create_user.sh文本的时候自动建立/mnt/userfile并且建立用户的密码在/mnt/passwdfile中##########(交互式设定用户文件密码文件创建用户)
    在这里插入图片描述

    #!/bin/bash
    Max_Line=`awk 'BEGIN{N=0}{N++}END{print N}' $1`
    for NUM in `seq 1 $Max_Line`
    do
     	   USERNAME=`sed -n ${NUM}p $1`
        PASSWORD=`sed -n ${NUM}p $2`
        useradd $USERNAME &>/dev/null &&{
                echo $PASSWORD |passwd --stdin $USERNAME &>/dev/null
                echo $USERNAME is create
    }||{
                echo $USERNAME is exist!!!
    }
    done
    

    ~
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ########变量值传递#######

    $1   脚本后的第一串字符
    $2   脚本后的第二串字符
    $3   脚本后的第三串字符
    $#   脚本后所跟所有字符串的个数
    $*   脚本后跟的所有字符串,模式为"1 2 3"
    &@   脚本后跟的所有字符串,模式为"1" "2" "3"
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    验证*和@区别

    $*   脚本后跟的所有字符串,模式为"1 2 3"
    &@   脚本后跟的所有字符串,模式为"1" "2" "3"
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    用read实现变量传递

    read                WESTOS
    read -s             WESTOS
    read -p   "input:"  WESTOS
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    ######文件名后面跟-d进行删除用户,跟-c进行创建用户并且写密码,不跟-d|-c提示只能使-d|-c并退出########

    #!/bin/bash
    [ "$1" != "-d"  -a "$1" != "-c" ]&&{
        echo "Please input -d|-c following $0"
    }
    [ "$1" = "-c" ]&&{
        read -p "Please input username: " USERNAME
        read -p "Please input password: " -s PASSWORD
        echo ""
        useradd $USERNAME &>/dev/null &&{
                echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null
        }||{
                echo $USERNAME is exist!!!!      
        }
    }
    [ "$1" = "-d" ]&&{
        read -p "Please input username: " USERNAME
        userdel -r $USERNAME &>/dev/null||{
                echo "Can't del $USERNAMR because $USERNAME is not exit or busy"
    
        }
    }
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ##########linux系统中命令别名的设定######

    /root/.bashrc 用户级,    .bashrc当前用户
    /etc/bashrc所有用户   系统级
    unalias xie
    
    
    ##
    alias xie='vim'  ##断开ssh连接重新连接就没有了,环境级
    vim /root/.bashrc = vim ~/.bashrc  ##用户级
      alias xie='vim'
    source .bashrc  ##读取配置文件,断开ssh连接重新连上还可以。但是切换环境(student)就没有了
    vim /etc/bashrc   ##系统级
      alias xie='vim'
    unalias xie
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ###利用命令执行结果设定变量#########

    Hostname=$(hostname)
    Hostname=`hostname`
    $?
    $?是命令在执行完之后产生的退出值
    echo $?正常值是0,不正常非0
    范围是[0-255]
    当$0=0时标示命令执行没有错误输出
    
    这个值可以用exit命令执行
    例如exit 66
    exit 后面是多少,退出值就是多少
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    #####脚本中的函数#########

    用来把脚本中复杂的语句块定义成一个字符串的方法(写成一个模块),方便调用
    Host_Message()
    {
    read -p "Please input you action: " Action
         .....
         .....
    }
    Host_Message
    例如写一个函数来每次加颜色
    脚本篇幅大大缩短
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ########使脚本循环:#############
    在这里插入图片描述
    在这里插入图片描述
    例题:

    create_user.sh
    pleasae input username:lee
    当lee存在
    lee is exit
    please input usernamr:lee1
    当lee1不存在
    please input password:
    lee1建立并设定密码
    please input username:exit
    退出
    
    
    #!/bin/bash
    READ()
    {
        read -p "Please input word: " USERNAME
        [ "$USERNAME" = "exit" ]&&{
                echo bye
                exit 0
        }
        useradd $USERNAME &> /dev/null &&{
           read -p "Please input passwd: " PASSWORD
            echo $PASSWORD |passwd --stdin $USERNAME &> /dev/null
            echo $USERNAME is created
            READ
    
    }||{
        echo $USERNAME is exist!!!!
        READ
    }
    
    }
    READ
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • hue中生成oozie任务传参shell任务)

    千次阅读 2018-12-20 18:24:03
     2.workflow,顾名思义,一个workflow就是多个action组成的DAG流:  3.schedule是对workflow的重复调用,你可以一小时执行一次,也可以一天执行一次。 下图的例子就是每天4:25执行一次  4,...
  • 文章目录expect的介绍1....借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对台服务器执行相同操作的环境中,可以提高系统管理人员
  • 最近跑实验,遇到了一问题:由于实验数据集比较,每次跑完一数据集就需要手动...我们期望的解决办法是通过命令行传参来解决这问题,因为接下来是需要编写shell脚本来批量运行实验,如果用输入语句的方式显得...
  • Shell 脚本

    2019-10-11 14:51:35
    Shell Script 文章目录Shell Script变量、字符串、数组与注释传参运算符流程控制函数与输出...Shell Script(Shell脚本)是一种为Shell编写的脚本程序。 Linux的Shell(程序)种类很,常见的有: Bourne Shell (/us...
  • Bash(Bourne Again shell)也跟其他编程语言一样也支持函数,一般在编写大型脚本中需要用到,它可以将Shell脚本程序划分成一个个功能相对独立的代码块,使代码的模块化更好,结构更加清晰,并可以有效地减少程序的...
  • oozie 是一非常不错的页面可视化程序调度器,优点很明显,但缺点也很,最恶心的是不支持动态的参数,以及使用sqoop时非常麻烦,因此,最好的方法自然是通过oozie调度一个shell调度脚本,由shell脚本再去调度执行...
  • shell脚本之函数

    2018-12-13 00:06:27
    这里话不说了,直接上例子,从例子中总结shell脚本函数的一些特征: 这程序是创建Linux用户的,函数形式和C语言比较类似,其传参形式稍微有所不同,不过和命令行相类似,还有一种传参的方式: grep_user() { ...
  • 由于initrc中支持的命令有限(不能支持system/bin下所有命令),而且不适合写比较复杂的逻辑(如传参、函数块 ),通常把这些功能放在shell脚本里来执行,但是shell脚本又需要放在initrc中来调用执行。因为随着...
  • 笔者在工作中需要动态传入日期参数执行脚本,但是将多个日期一个一个传入会降低执行效率,故根据一定时间段将日期聚合划分成区间段可以减少传参执行的次数。此例子以7天为范围聚合日期到区间段,可以根据实际需要...
  • 在编写shell脚本的时候,经常会发现在多个地方使用了同一段代码,如果只是一小段代码,一般也无关紧要,但是要在脚本中多次重写大块代码的话就太累了,shell中的函数就可以解决这个问题,可以将代码放进函数体封装...
  • os.system如何传参

    万次阅读 2017-05-26 11:30:18
    今天写脚本的时候,正好希望在python脚本中调用另外一python脚本,就使用了os.system来实现这功能(当然,还有很的办法,而且每种方法满足的需求不都一样,有兴趣的读者可以谷歌下)。但是我需要给这调用...
  • Shell脚本 1. 基本的几个变量 使用$?获取最近一次的执行结果; 使用$#获取传递的参数格式,类似C语言中的int argc; 使用$@获取所有的传参...将多个变量化为一个字符串,否则测试时可能会有warning ###########...
  • shell--shell特殊参数

    2020-02-05 22:58:32
    多个位置参数 注意:当位置参数数字大于9时,需要用大括号将数字括起来 获取名称和路径 单独获取脚本文件的名称和路径 通过$#获取脚本传参的个数 利用set设置位置参数(同命令行脚本传参) $ *和$@的区别 ...
  • 以MySQL举例,可以用这个sql代码带出来表结构,其他数据库类似,对于多个表可以写存储过程或者其他语言诸如python,shell,java等写脚本传参给table_name和table_schema SELECT table_schema ...
  • shell 获取昨天日期

    千次阅读 2013-07-06 13:47:07
    不过昨天又碰到了这问题,这次是可以向脚本传参来获取N天前的日期,看到别人写的好麻烦,心想如果用时区来写不简单的很吗,那样就不用判断年月日了吧,于是昨天用了3、4行达到了别人用3、40行要实现的内容,成就...
  • shell中的特殊参数

    2020-02-11 14:13:30
    文章目录shell中的特殊参数1.$变量名(位置参数)多个位置参数的传递引用2.获取脚本文件的名称及路径$0获取单独获取脚本文件的路径和名称3.$#获取脚本传参的个数4.set设置位置参数5.`$*` 和`$@`的区别6.shift用于...
  • shell --Day 6

    2019-10-04 19:45:54
    脚本参数交互与for语句循环 1、脚本参数交互 ...read语句可以多个参数同时输入,如果变量个数多于输入的数值,就把最后多余的数值赋值给最后一个变量。 例:read a b c [root@lsl ~]# read a b c...
  • 一、基本函数定义与调用 ...$0是运行该脚本shell传递的参数从$1开始、传递多个参数是以空格分隔 三、传递有空格参数 testFun() { echo $1 } param=“hello world!” testFun “$param” ...
  • 文章目录$变量名(位置参数)多个位置参数的传递引用$0获取脚本文件的名字单独获取脚本文件的路径和名称$#获取脚本传参的个数set设置位置参数(同命令脚本传参)美元符*和美元符#的区别 +函数的定义+for循环的定义...
  • X皮书之shell 常用代码

    2012-11-13 14:20:00
     ♦ 必须以root帐号执行本脚本  ♦ 命令行传参  ♦ 杀掉指定进程  ♦ 局部扫盲  ♦ 总结   思维导图         序    把这几天常用的一些方法积累下来,以便以后使用。这只是...
  • $#获取脚本传参的个数6.set设置位置参数(同命令脚本传参)7.==美元符 * 和美元符 @ 的区别== + ==函数的定义==+ ==for循环的定义==8.shfit 自动移动位置 一、shell中特殊参数的归纳整理 1.$变量名(...
  • 最近需要导数据的情况太,总用跳板机上的navicat工具有点效率低,也觉得挺麻烦的(由于跳板机无法连通外网 所以导出数据文件还得通过sftp传到本机)anyway 还是写个脚本好了。之前写过一个shell脚本做的定时导出任务...
  • 目录 一、ros脚本不足之处 ...比如模块的引入、外部传参等,ros脚本显得无能为力,因数ros主要还是路由器功能,脚本只是它的一辅助,像思科、h3c、华为是路由是没有脚本的概念的。 如何要处理更复杂的功能还需要..
  • 电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch # init 所有的已经连接到...

空空如也

1 2
收藏数 37
精华内容 14
热门标签
关键字:

多个脚本传参shell