zoukankan      html  css  js  c++  java
  • 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} // 输出第一个索引的值
    

      

  • 相关阅读:
    javaweb基础笔记(2)
    javaweb基础笔记(1)
    java基础笔记(11)
    java基础笔记(10)
    java基础笔记(9)
    洛谷 P2648 赚钱
    AcWing 走廊泼水节 题解
    对于有向图多个点到一个点的求法
    分层图的四倍经验
    洛谷 P4822 [BJWC2012]冻结
  • 原文地址:https://www.cnblogs.com/leyi/p/10613913.html
Copyright © 2011-2022 走看看