zoukankan      html  css  js  c++  java
  • shell变量

    1  $0 当前的脚步名
    2 $n 传递给脚本或者函数的第几个参数,$1第一个参数,$2第二个参数
    3 $* 传递给脚本或者函数的所有参数
    4 $@ 传递给脚本或者函数的所有参数
    5 &* 与$@的区别,在双引号中,$*以一个整体传入进去
    6 $# 传入参数的个数
    7 $$ 当前shell的进程id
    8 $?上一个命令的退出状态
    vim test2.sh
    #!/bin/bash
    echo "file name: $0"
    echo "first parameter: $1"
    echo "first parameter: $2"
    echo "first paramerer: $@"
    echo "first parameret: $*"
    echo "first paramerer: $#"
    [root@bogon code]# ./test2.sh hello world laiying
    file name: ./test2.sh
    first parameter: hello
    first parameter: world
    first paramerer: hello world laiying
    first parameret: hello world laiying
    first paramerer: 3

     shell变量名定义规则

    以字母,数字,下划线组成
    必须以字母,或者下划线开头
    不能以shell里面的关键字命名
    使用变量,只要在变量前加$就可以调用变量
    a = 'hello'
    echo $a
    
    规范,最好在变量名外面加{},这个是可选的,加花括号是为了帮助解释器识别变量的边界

    shell中单引号和双引号的区别

    在单引号中,如果包含了变量名,解释器会解析不了变量名或者命令,需要用反引引起来才能识别
    
    在双引号中,可以识别变量或者命令

     read命令,使用read命令从stdin获取输入并赋值给PERSON,最后在stdout输出

    vim test.sh
    #!/bin/bash
    echo "what is you name"
    read PERSON
    echo "hello, $PERSON"
    
    
    [root@bogon code]# chmod +x test.sh 
    [root@bogon code]# ./test.sh
    what is you name
    jack
    hello, jack

    readonly只读变量,该命令可以将变量定义为只读变量,只读变量的值不能被改变

    vim test.sh
    #!/bin/bash
    name="ying"
    readonly name
    name="xixing"
    
    [root@bogon code]# ./test.sh 
    ./test.sh:行4: name: 只读变量

    unset删除变量

    语法 unset varable_name

    [root@bogon code]# name="jack"
    [root@bogon code]# echo $name
    jack
    [root@bogon code]# unset name
    [root@bogon code]# echo $name
    以上没有任何输出
  • 相关阅读:
    【全网最全的博客美化系列教程】文章总目录
    不要再被骗了------QQ盗号原理大揭秘
    努力的孩子运气不会太差,跌宕的人生定当更加精彩
    我的七条人生哲理以及个人学习方法总结
    博客园自定义页面风格设计 后续篇(页面设计模式及代码高亮 鼠标点击效果升级)
    【资料分享】500篇干货解读人工智能新时代
    我的大一生活以及在博客园写博客的这一年
    博客园自定义页面风格设计
    ACM退役记&&回忆录
    留言板
  • 原文地址:https://www.cnblogs.com/YingLai/p/9888559.html
Copyright © 2011-2022 走看看