• bash变量类型详解


      本地变量:作用于当前shell,对当前shell之外的其他shell进程和当前shell子进程均无效。

      本地变量赋值为

    name='value'

      value可以是字符串或者是变量,引用变量使用${name}或$name或``.

      注:单引号是强引用而双引号是弱引用。

    [root@izwz9bqngpatc008nw00e7z tmp]# echo '$animal'
    $animal
    [root@izwz9bqngpatc008nw00e7z tmp]# echo "$animal"
    dog
    [root@izwz9bqngpatc008nw00e7z tmp]# echo "$animals."
    .
    [root@izwz9bqngpatc008nw00e7z tmp]# echo "${animal}s."
    dogs.
    [root@izwz9bqngpatc008nw00e7z tmp]# myid = `id -u`
    -bash: myid: command not found
    [root@izwz9bqngpatc008nw00e7z tmp]# myid=`id -u`
    [root@izwz9bqngpatc008nw00e7z tmp]# echo '$myid'
    $myid
    [root@izwz9bqngpatc008nw00e7z tmp]# echo "$myid"
    0
    [root@izwz9bqngpatc008nw00e7z tmp]# filename=`date +%F-%H-%M-%S`
    [root@izwz9bqngpatc008nw00e7z tmp]# echo "$filename"
    2018-03-19-18-41-21

      使用set显示已定义的所有变量,unset name 销毁变量。

      局部变量:生效在shell进程的某段代码片段中。

      环境变量:生效在当前shell进程和他的子进程中。

      声明方式为

    export name=value
    declare -x name=value
    [root@izwz9bqngpatc008nw00e7z tmp]# export TES='animal'
    [root@izwz9bqngpatc008nw00e7z tmp]# echo $TES
    animal
    [root@izwz9bqngpatc008nw00e7z tmp]# declare -x myname='jeffd'
    [root@izwz9bqngpatc008nw00e7z tmp]# echo $myname
    jeffd

      显示所有环境变量:export,env,printenv。

      销毁环境变量:unset name。

      不要使用bash内建环境变量。

      只读变量:

    readonly name
    declare -r name

      位置变量:用于让脚本在脚本代码中调用通过命令行传递给它的参数。

    [root@izwz9bqngpatc008nw00e7z tmp]# cat test.sh 
    #!/bin/bash
    linecount="$(wc -l $1|cut -d' ' -f1)"
    echo "$1 has $linecount lines."
    [root@izwz9bqngpatc008nw00e7z tmp]# chmod +x test.sh 
    [root@izwz9bqngpatc008nw00e7z tmp]# ./test.sh /etc/passwd
    /etc/passwd has 25 lines.

      特殊变量:$?上一个命令执行状态的返回值。

      程序执行可能有两种返回值:
      1. 程序执行结果
      2. 程序状态返回吗(0-255)
        0 则为执行正确
        1-255 则执行出错(1,2,127系统预留);

      $#:获取当前shell命令行中参数的总个数
      $*:获取当前shell的所有参数 “$1 $2 $3 …,受IFS控制
      $@:这个程序的所有参数 “$1″ “$2″ “$3″ “…”,不受IFS控制
      $0 获取当前执行的shell脚本的文件名
      $n 获取当前执行的shell脚本的第n个参数值,n=1..9
      $$ 获取当前shell的进程号(PID)
      $! 执行上一个指令的PID

  • 相关阅读:
    表白利器,马赛克拼贴照片制作
    听说国漫最近崛起了,那我们就来爬几部国漫看看(动态加载,反爬)
    python爬虫--看看虎牙女主播中谁最“顶”
    “花小猪”,滴滴搬起石头砸自己的脚?
    Linux命令学习之awk
    《Redis深度历险》集群篇、拓展篇
    《Redis深度历险》原理篇
    《Redis深度历险》应用篇
    《鸟哥的Linux私房菜 基础篇》下
    Git使用
  • 原文地址:https://www.cnblogs.com/Jeffding/p/8604728.html
Copyright © 2020-2023  润新知