bash工作特性之命令執行狀態返回值和命令行展開的講解和實例

  • 命令執行狀態返回值
    在Linux bash中可以用命令執行狀態返回值來判斷命令是否運行成功,而不需去關心命令返回的結果是多少。

    • bash通過狀態返回值來得到輸出結果;
      • 成功:返回值 0
          [root@localhost tmp]# ls
          aaa
          [root@localhost tmp]# mkdir $(date +%H-%m-%S)
          [root@localhost tmp]# ls
          04-02-49  aaa
          [root@localhost tmp]# echo $?
          0
      • 失?。悍祷刂?1-255
        [root@localhost tmp]# ls llllllll
        ls: cannot access llllllll: No such file or directory
        [root@localhost tmp]# echo $?
        2
    • 命令執行完成后,狀態返回值保存在bash的特殊變量$?中;
      $?只能獲取最近一條命令的狀態結果,還可以把 $?放在提示符里去,這樣每次運行命令都能看到狀態結果;

      [root@localhost tmp]# export PS1="[\$?]${PS1}"
      [0][root@localhost tmp]# ls llll
      ls: cannot access llll: No such file or directory
      [2][root@localhost tmp]#
    • 命令正常執行時,有的還會有命令返回值; 根據命令及其功能的不同,返回結果各不相同;
      引用命令的執行結果:$(COMMAND) 或 ‘COMMAND’
  • 命令行展開
    在Linux bash中使用命令行展開一步完成需要分開成多步完成的操作,而達到事半功倍的效果。在Linux指令參數位置使用”{}” 將相應的參數括起來,括號中的參數以逗號分隔,然后bash在執行這一指令時會自動將括號中的內容進行展開。

    1. 創建/tmp目錄下的:a_c, a_d, b_c, b_d
      [0][root@localhost aabb]# ll
      total 0
      [0][root@localhost aabb]# mkdir {a,b}_{c,d}
      [0][root@localhost aabb]# tree
      .
      ├── a_c
      ├── a_d
      ├── b_c
      └── b_d
    2. 創建/tmp/mylinux目錄下的:
      [0][root@localhost tmp]# ll
      total 0
      [0][root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
      [0][root@localhost mylinux]# tree
      .
      ├── bin
      ├── boot
      │?? └── grub
      ├── dev
      ├── etc
      │?? ├── rc.d
      │?? │?? └── init.d
      │?? └── sysconfig
      │??     └── network-scripts
      ├── lib
      │?? └── modules
      ├── lib64
      ├── proc
      ├── sbin
      ├── sys
      ├── tmp
      ├── usr
      │?? └── local
      │??     ├── bin
      │??     └── sbin
      └── var
       ├── lock
       ├── log
       └── run
      24 directories, 0 files

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91789

(1)
華龍華龍
上一篇 2018-03-01
下一篇 2018-03-01

相關推薦

  • N26 – 第一周作業

    一、計算機組成及其功能     如圖,計算機由硬件和軟件組成。其中硬件可劃分為控制器、運算器、存儲器,以及輸入和輸出設備;軟件則分為直接與硬件通信的系統軟件,以及運行在其上的各類應用軟件。      二、Linux發行版的不同系列     …

    Linux干貨 2016-12-28
  • Hadoop HDFS分布式文件系統設計要點與架構

    Hadoop簡介:一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有著高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件…

    Linux干貨 2015-04-13
  • 馬哥linux課堂筆記

    0805課堂筆記 基本權限 讀,寫,執行   對于文件的讀權限,能否查看文件內容.(文件內容需不需要看,如果是文本就需要看,如果是二進制就不需要看) 對于文件的寫權限,能否修改文件內容,不能修改文件名,不能刪除文件.(如果需要修改文件內容和文件名,必須在其父目錄增加寫權限和執行權限) 對于文件的執行權限,能否運行他.   對于目錄的讀權限…

    Linux干貨 2016-08-15
  • Linux進程查看及管理(2)

     Linux進程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup  vunt]] mstat命令: vmstat [options] [delay [co procs: r:…

    Linux干貨 2015-09-28
  • 文件相關操作練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限: 2、編輯/etc/group文件,添加組hadoop: 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop: 4、復制/etc/sk…

    2017-11-17
  • 馬哥教育網絡20期+第8周練習博客

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:鏈接層設備,基于MAC地址過濾。 集線器:物理層設備,基本都屬于半雙工模式。集線器與網橋在現在的局域網中基本都不用了。 二層交換機:基本MAC轉發數據,功能齊全的可支持VLAN等功能。常見的有100/1000M、16口/24口/48口。 三層交換機:功能齊全的交換機,具備都…

    Linux干貨 2016-08-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-03-20 21:49

    沒問題。

欧美性久久久久