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

!0=1

短路法則:

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

 ?。茫希停停粒危模睘榧伲瑒tCOMMAND2必須執行

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

  ?。茫希停停粒危模睘檎?,則COMMAND2不會執行

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

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

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

(1)
shadowshadow
上一篇 2016-12-23 00:50
下一篇 2016-12-23 01:00

相關推薦

  • Centos7下安裝httpd源碼包

    今天小編來跟大家做個練習,就是如何在Centos7下安裝httpd源碼包. 一:下載httpd最新版本的源碼包 [root@localhost ~]# rpm -qa |grep httpd //查詢系統上是否已安裝httpd包 httpd-tools-2.4.6-45.el7.centos.4.x86_64 httpd-2.4.6-45.el7.cento…

    2017-08-19
  • 什么是CA??

       數字證書認證機構(英語:Certificate Authority,縮寫為CA),也稱為電子商務認證中心、電子商務認證授權機構,是負責發放和管理數字證書的權威機構,并作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。 介紹     CA中心為每個使用公開密鑰的用戶發放一個…

    Linux干貨 2017-07-17
  • 馬哥教育網絡20期+第五周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又…

    Linux干貨 2016-07-07
  • 教你使用rpm、yum、編譯等方式安裝軟件

    一、什么是包管理器?     很多人都不知道包管理器的概念,首先我們要了解軟件是如何運行的,我們這里介紹C程序如何實現從代碼到執行程序的過程。         程序源代碼–> 預處理–> 編譯&#8211…

    Linux干貨 2016-03-09
  • Apache配置壓縮優化時報錯——undefined symbol: inflateEnd

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1345264    圣誕都過了,好久沒來51發博文了。最近一直在忙考試和其他一些私人事務,感覺長期不發博文,有點不好。不是不發,實在是最近…

    Linux干貨 2016-08-15
  • nl命令使用解析

    nl    命令功用: nl – number lines of files 顯示文件內容,并列出行號   命令樣式: nl [OPTION]… [FILE]…   命令選項: -b:正文行號,參數為樣式style -n:行號格式,參數為格式format -w:設定行號所占位數,參數為…

    Linux干貨 2016-10-20
欧美性久久久久