zoukankan      html  css  js  c++  java
  • [ZZ] Shell编程中的几个内建命令

    bash命令解释套装程序包含了一些内部命令。内部命令在目录列表时是看不见的,它们由Shell本身提供。常用的内部命令有:echo, eval, exec, export, readonly, read, shift, wait和点(.)。
      1.echo
      命令格式:echo arg
      功能:在屏幕上显示出由arg指定的字串。
      2.eval 
      命令格式:eval args
        命令eval的功能是將参数(args)读入 C shell 中,然后在加以执行。例如:

             101 # set vcom = 'ls -l ; date'
             102 # $vcom
                 ; not found
                 date not found

    在命令 101,vcom 是 'ls -l ; date'。当我们來执行“$vocm”,会出现错误信息“; not found”及“date not found”。原因是 C shell 在语法解析中无法理解特殊符号所造成的。符号“;”和命令 date 被理解成是命令 ls -l 后的“文件名称”。所以才会有“not found”。命令eval 便是用來解决这种情況:

             103 # eval $vcom
                 total 1
                 -r--r--r-- 1 akira 1296 Oct 12 07:29 search.c
                 Tue Oct 18 12:13:53 CST 1994

    其实在作法上使用命令 eval 便相当于以下的用法:

             104 % echo $vcom | csh
                  total 1
                  -r--r--r-- 1 akira 1296 Oct 12 07:29 search.c
                  Tue Oct 18 12:13:54 CST 1994

    如果你是在 C shell 下,你也可使用以下的方式:

             /bin/csh << EOF
             $vcom
             EOF

    另外在使用命令 eval 上也有技巧,看一互換的技巧:

             % set a = '$b'
             % set b = 'swapping'
             % echo $a
             $b
             %eval echo $a
             swapping

         3.exec
      命令格式:exec命令参数
      功能:当Shell执行到exec语句时,不会去创建新的子进程,而是转去执行指定的命令,当指定的命令执行完时,该进程(也就是最初的Shell)就终止了,所以Shell程序中exec后面的语句将不再被执行。
      4.export
      命令格式:export变量名 或:export变量名=变量值
      功能:Shell可以用export把它的变量向下带入子Shell,从而让子进程继承父进程中的环境变量。但子Shell不能用export把它的变量向上带入父Shell。
      注意:不带任何变量名的export语句将显示出当前所有的export变量。
      5.readonly
      命令格式:readonly 变量名
      功能:将一个用户定义的Shell变量标识为不可变。不带任何参数的readonly命令将显示出所有只读的Shell变量。
      6.read
      命令格式:read 变量名表
      功能:从标准输入设备读入一行,分解成若干字,赋值给Shell程序内部定义的变量。
      7.shift 语句
      功能:shift语句按如下方式重新命名所有的位置参数变量,即$2成为$1,$3成为$2…在程序中每使用一次shift语句,都使所有的位置参数依次向左移动一个位置,并使位置参数$#减1,直到减到0为止。
      8.wait
      功能:使Shell等待在后台启动的所有子进程结束。wait的返回值总是真。
      9.exit
      功能:退出Shell程序。在exit之后可有选择地指定一个数位作为返回状态。
      10.“.”(点)
      命令格式:. Shell程序文件名
      功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句。

  • 相关阅读:
    idea无法clean报错Error running 'lizi-user-api [clean]': No valid Maven installation found. Either set the home directory in the configuration dialog or set the M2_HOME environment variable on your system.
    maven项目无法下载依赖jar包
    JPA封装baseDao
    forward和redirect的区别
    java的三个体系
    Java基本修饰符
    SpringMVC 中,当前台传入多个参数时,可将参数封装成一个bean类
    注解@RequestParam——取请求参数
    冒泡排序
    为什么要使用线程池?
  • 原文地址:https://www.cnblogs.com/sanquanfeng/p/3277029.html
Copyright © 2011-2022 走看看