bash變量和邏輯運行

bash 特性及bash腳本編程初步

      終端,附著在終端的接口程序:

     GUI:KDE,GNome,Xfce

     CLI: /etc/shells

             bash

             zsh

             fish

bash的特性:

         命令行展開:~,{}

         命令別名:alias, unalias

         命令歷史:history

         文件通配:glob

         快捷鍵:Ctrl+a, u, k, l

        命令補全:$PATH

          路徑補全 :

bash特性之:命令 hash

   緩存此前命令的查找結果:key-value

      hash  命令

      hash:l列出

      hash: -d COMMAND:刪除

     hash -r :清空

bash的特性之:變量

       程序:指令+數據

       指令:由程序文件提供:

       數據:IO設備,文件,管道,變量

程序: 算法+數據結構

變量名+指向內存空間

變量賦值:name=value

    48762047827

變量類型:存儲格式、表示格式范圍,參與運算

      強類型變量

      肉類型變量:

                bash把所有變量統統是做字符型

                 bash中的變量了無需事先聲明:

變量替換:把變量名出現的位置替換為其所指向的內存空間中數據

變量引用:${var_name},$var_name

變量名:變量名只能包含字母,數字,下劃線,而且不能以數字開頭:

       變量:見名知意,命名機制遵循某種法則:不能夠適應程序的保留字,例如if, else,then,while 等等

bash 變量類型:

          本地變量:  作用領域僅為當前shell進程:

           環境變量:作用領域為當前shell進程及其子進程:

           局部變量:作用域僅為某代碼片段(函數上下文)

        位置參數變量:當執行腳本的shell進程傳遞的參數;

         特殊變量|:shell內置的有特殊功用的變量

          $?:

            0:成功

            1-255:失敗

本地變量:

        變量賦值:name=value

        變量引用:${name},$name

                " ":變量名會替換為其值

                查看變量:set

                撤銷變量:unset name

                       注意:此處非變量引用:

環境變量:

         變量賦值:

             (1)export name=value

             (2) name=value

                 export  name

             (3)declare -x name=value

             (4)name=value

                declare -x name

          變量引用: ${name}, $name

          注意:bash 內嵌了許多環境變量(通常為全大寫字符),用于定義bash的工作環境

PATH, HISTFILE, HISTSIZE, HISTFILESIZE, HISTCONTROL, SHELL, HOME,UID, PWD, OLDPWD

         查看環境變量:export,declare -x printenv, env

          撤銷環境變量: unset name

只讀變量:

(1) declare -r name

(2) readonly name

只讀變量無法重新賦值,并且不支持撤銷:存活時間為當時shell進程的生命周期,隨shell進程進程終止而終止;

bash特性之多命令執行:

~]# COMMAND1; COMMAND2,COMMAND3;…

邏輯運算:

   運算數:真(true, yes, on. 1)

                  假(false, no, off.0)

1&&1=1

1&&0=0

0&&1=0

0&&0=0

或:

1  || 1=1

1  ||  0=1

0  ||  1=0

0  ||  0=0

! 1=0

?。埃剑?/p>

短路法則:

~]COMMAND1?。ΓΑ。茫希停停粒危?/p>

  COMMAND1為假,則COMMAND2必須執行

~]#COMMAND1?。。茫希停停粒危模?/p>

  ?。茫希停停粒危模睘檎妫瑒tCOMMAND2不會執行

   否則,COMMAND1 為假,則COMMAND2必須執行

示例:~]#?。椋洹 纾酰螅澹颍睿幔恚濉。。酰螅澹颍幔洌洹 纾酰螅澹颍睿幔恚?/p>

原創文章,作者:shadow,如若轉載,請注明出處:http://www.www58058.com/64525

(1)
shadowshadow
上一篇 2016-12-23
下一篇 2016-12-23

相關推薦

  • iptables實踐-week14

    系統的INPUT和OUTPUT默認策略為DROP; 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; 規則: # 周一不能訪問web服務 ~]# iptables -R INPUT 1 -d 172.16.0.11 -p tcp –dp…

    Linux干貨 2017-05-04
  • zabbix監控Hadoop的實現

            Hadoop日常運行過程中一些參數需要進行實時監控,如:Map、Reduce任務數量,HDFS磁盤使用情況,namenode、datanode在線數量及健康情況,以便更好的掌握整個Hadoop集群架構的運行情況。         下面結合最近工作中的一些…

    Linux干貨 2015-03-08
  • 設計模式(六)橋連模式Bridge(結構型)

    1. 概述       在軟件系統中,某些類型由于自身的邏輯,它具有兩個或多個維度的變化,那么如何應對這種“多維度的變化”?如何利用面向對象的技術來使得該類型能夠輕松的沿著多個方向進行變化,而又不引入額外的復雜度? 例子1:設想如果要繪制矩形、圓形、橢圓、正方形,我們至少需要4個形狀類,但是如果繪制的圖形需要具有不同的…

    Linux干貨 2015-06-26
  • 馬哥教育網絡班21期+第二周課程練習

    Linux上的文件管理類命令都有哪些?其常用的方法及其相關示例。     cp:將源文件或者目錄復制到目標文件或者目錄中。     mv:將文件或目錄重新命名,或者將源文件從源目錄移到目標目錄中。     rm:刪除指定的一個文件或者多個文件或者目錄。       &n…

    Linux干貨 2016-07-16
  • N21_第二周練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理類命令:cp,mv.rm 復制命令:cp 格式:        cp [OPTION]… [-T] SOURCE DEST        cp [OPTION]… SOU…

    Linux干貨 2016-07-16
  • 8月3號 用戶權限作業

     1,當用戶xiaoming 對/testdir  目錄無執行權限時,意味著無法做哪些操作?   先創建目錄/testdir,接著修改目錄的/testdir的權限,用xiaoming的身份去進入/testdir目錄 [root@localhost ~]# mkdir /testdir [root@l…

    Linux干貨 2016-08-08
欧美性久久久久