• shell 变量、参数、数组章节笔记


    // 变量名和等号之间不能有空格  
    hello="123456";  
    echo $hello;
    // 花括号只是帮助识别变量边界  
    echo ${hello};   
    
    // unset 删除变量  
    unset hello;  
    // 打印为空  
    echo $hello;   
     
    
    // 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的  
    // 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用  
    
    hello='12345';
    echo '$hello world';
    显示: $hello world
    
    // 双引号里可以有变量
    // 双引号里可以出现转义字符
    
    echo "$hello "world""
    显示: 12345 "world"
    
    // 获取字符串长度
    echo ${#hello} 
    
    // 提取子字符串 
    // 从第2个字符开始截取5个字符
    echo ${hello:1:5}
    
    // 命令的结果赋值给变量 $() || ` `  
    info=$(tail -n 5 ./hello.txt). 
    echo ${info}  
    或  
    info=`head -n 5 ./hello.txt`  
    echo ${info}  
    
    
    //  参数传递  
    $1 获取第一个参数  
    $# 获取传递的参数个数  
    $* 获取所有的参数
    $@ 获取所有的参数,与$*相同
    
    ./1.sh 1 2 3
    
    echo $1   // 1  
    echo $#   // 3  
    echo $*   // 1 2 3  
    
    // $* 和 $@ 的区别 (加上双引号后才有区别)
    // "$*" 是一个参数,接收的参数当一个整体  “$@”如果是多个参数,会分开接收
    // $@ 加不加引号没有影响,主要是$*加引号会结果不同
    
    for i in $@; do  
    echo $i;  
    echo '-----split-line----'  
    done;  
    
    for i in "$*"; do  
    echo $i;  
    echo '-----split-line----'  
    done;  
    
    // $@把参数当成3个 循环了三次
    1  
    -----split-line----  
    2  
    -----split-line----  
    3    
    -----split-line----
    
    // “$*"把参数当成一个整体,循环了一次
    // 如果不加引号就跟$@一样  
    1 2 3  
    -----split-line----  
    
    
    // 数组
    
    hello=(1 2 3 4 5) //  数组空格分割
    echo ${hello[1]} // 获取指定索引的值
    hello[0]=9 // 设置数据
    echo ${hello[*]} // 输出全部
    echo ${#hello[*]} // 输出数组长度
    echo ${hello} // 输出第一个索引的值
    

      

  • 相关阅读:
    Spring MVC笔记(二) Hello World实例
    Spring MVC笔记(一) Spring MVC概述
    正则表达式在python中的应用
    Spring与Ibatis整合入门
    Spark GraphX的函数源码分析及应用实例
    Python爬虫获取迅雷会员帐号
    Linux Shell编程学习笔记
    Hadoop在linux下无法启动DataNode解决方法
    Ubuntu中使用终端运行Hadoop程序
    Hadoop2.6.0在Ubuntu Kylin14.04上的配置
  • 原文地址:https://www.cnblogs.com/leyi/p/10613913.html
Copyright © 2020-2023  润新知