zoukankan      html  css  js  c++  java
  • shell-的特殊变量-难点理论

    一:shell的特殊变量-难点理论
      1. $*和$@的区别例子
         $* 将所有的命令行所有参数视为单个字符串,等同于“$1$2$3”
         $@ 将命令行每个参数视为单独的字符串,等同于"$1" "$2" "$3"。这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白。
       实例:

    [root@1-241 scripts]# set -- "I am " handsome oldboy.                #传入三个参数
    [root@1-241 scripts]# echo $#                                                                  #现在有三个参数
    3
    [root@1-241 scripts]# for i in $*; do echo $i;done                          #循环打印这些参数,用$*,无引号
    I
    am
    handsome
    oldboy.
    [root@1-241 scripts]# for i in $@; do echo $i;done                      #循环打印这些参数,用$@,无引号
    I
    am
    handsome
    oldboy.
    [root@1-241 scripts]# for i ; do echo $i;done                              #去掉in变量列表,相当于in “$@”
    I am
    handsome
    oldboy.
    [root@1-241 scripts]# for i in "$@"; do echo $i;done            #在有双引号的情况下,参数里引号内内容当做一个参数输出了,这才真正符合我们传入的参数需求,set  --  "I am" handsome oldboy.
    I am
    handsome
    oldboy.
    [root@1-241 scripts]# for i in "$*"; do echo $i;done           #加了双引号,$*表示一个字符串
    I am handsome oldboy.
    [root@1-241 scripts]# shift                                                              #用shift去掉第一个参数
    [root@1-241 scripts]# for i in "$@"; do echo $i;done        #再次打印只剩后面两个参数了
    handsome
    oldboy.
    [root@1-241 scripts]# for i in "$*"; do echo $i;done
    handsome oldboy.
    [root@1-241 scripts]# for i ; do echo $i;done
    handsome
    oldboy.
    

      

  • 相关阅读:
    正则表达式入门(3)
    正则表达式入门(2)
    正则表达式入门
    函数的参数传递
    python常用库之random
    插入排序与归并排序
    浅拷贝与深拷贝
    装饰器学习小程序
    Python的“is”与“==”
    Oracle中断中止exp/imp和expdp/impdp数据库导入导出
  • 原文地址:https://www.cnblogs.com/scajy/p/12762329.html
Copyright © 2011-2022 走看看