博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell-特殊变量
阅读量:7056 次
发布时间:2019-06-28

本文共 1390 字,大约阅读时间需要 4 分钟。

  1. 位置变量。

    $0 获取当前执行的shell脚本的文件名。如图:

    [root@localhost ~]# vim 0.sh 

    [root@localhost ~]# cat 0.sh 

    echo $0

    [root@localhost ~]# sh 0.sh

    0.sh

    [root@localhost ~]# 

  2. 如果我把它的完全路径输入的话就会这样,如图:

  [root@localhost ~]# sh /root/0.sh 

  /root/0.sh

   $1一直到$10是代表对应的第几个变量,如$1是对应的第一个变量的值,如果是$10的话,要把10用{}括号括号起来,如${10}

   如图:

    

    [root@localhost ~]# sh 0.sh zhouyu

    zhouyu

    顺便说一下,seq是发送从哪个值到哪个值,如命令

    seq -s " " 1 10

    是说发送1到10用空格分隔出来,如图:

    [root@localhost ~]# seq -s " $" 1 10

    1 $2 $3 $4 $5 $6 $7 $8 $9 $10

    $#是指命令行参数的总个数。如果给你命令行的参数有10个那么$#就是10

    dirname $0是把脚本的目录取出来

     basename $0是把名称取出来。

    如图:

    [root@localhost ~]# cat 0.sh 

    dirname $0

    basename $0

    [root@localhost ~]# sh /root/0.sh 

    /root

    0.sh

    [root@localhost ~]#

    可以去看看/etc/init.d/nfs文件对于这些参数的用法。

    $@和$*的区别

    $*是把所有的变量看成是一个变量,在加了""的情况下就是这样。如果不加""的话就会把每一      个变量都拆分出来,这样和$@是没有区别的 

    $@是把所有的变量都拆分出来,在加了""的情况下就是这样的。两者的区别可以看看下面的例      子

    [root@localhost zhouyu]# set "zhou yu" 1 3

    [root@localhost zhouyu]# for i;do echo $i;done

    zhou yu

    1

    3

    [root@localhost zhouyu]# for i in $*;do echo $i;done

    zhou

    yu

    1

    3

    [root@localhost zhouyu]# for i in $@;do echo $i;done

    zhou

    yu

    1

    3

    [root@localhost zhouyu]# for i in "$*";do echo $i;done

    zhou yu 1 3

    [root@localhost zhouyu]# for i in "$@";do echo $i;done

    zhou yu

    1

    3

    有时候我们要删除目录的时候,就是用变量删除的,可是如果没有变量或者我们定义的变量突然失效的话,那有可能会从/开始删除,这样的话就会对系统造成影响。所以我们可以用以下命令来确保我们的变量存在

${zhouyu:=/tmp}

上面那个的意思就是说如果$zhouyu变量不存在,就会赋予它一个值,这个值为/tmp

本文转自 周子琪 51CTO博客,原文链接:http://blog.51cto.com/izhouyu/1886164

转载地址:http://gfmol.baihongyu.com/

你可能感兴趣的文章
shell 环境变量
查看>>
安装xampp二三事
查看>>
2019-04-09 SpringBoot+Druid+MyBatis+Atomikos 的多数据源配置
查看>>
分解质因数
查看>>
字符型图片验证码识别完整过程及Python实现
查看>>
js,jquery获取url参数
查看>>
Java基础学习总结(36)——Java注释模板
查看>>
erange.heetian.com 回显任意账号
查看>>
OBJ文件格式简介
查看>>
实验三 有限自动机的构造与识别
查看>>
python的学习笔记之——time模块常用内置函数
查看>>
计算机是如何工作的
查看>>
【c++】必须在类初始化列表中初始化的几种情况
查看>>
阿拉伯数字1与英语字母l造成的代码bug
查看>>
深度学习常见的专业术语
查看>>
2018-2019-2 20165334《网络对抗技术》Exp2 后门原理与实践
查看>>
HTML提交方式post和get区别(实验)
查看>>
Java 11.do语句
查看>>
学习理论之感知器与最大间隔分类器
查看>>
Be Nice!要善良
查看>>