bash命令行返回值和展開
標簽(空格分隔): bash,命令,狀態,展開
1.命令狀態結果和執行結果
(1)命令執行的狀態返回值,命令執行完成之后,其執行狀態結果值保存於bash的特殊狀態變量$?中。
0:成功
1-255:失敗
[root@yumc66 ~]# date
2016年 12月 20日 星期二 11:57:10 CST
[root@yumc66 ~]# echo $?
0
[root@yumc66 ~]# $?
-bash: 0: command not found
[root@yumc66 ~]# echo $?
127
(2)命令返回值(執行結果)
命令返回值,根據命令及其功能不同,結果各不相同。
命令返回值(執行結果)引用
$(COMMAND)
或`COMMAND`
~]#mkdir $(date +%H-%M-%S)
2.命令行展開
~:自動展開為用戶的家目錄,或指定用戶的家目錄
{}:分組機制,可承載以逗號,分割的路徑列表,並將其展開為多個路徑
例如1
~]# ls /tmp/{a,b} 相當於 ls /tmp/a /tmp/b
例如2 創建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b
~]#mkdir -pv /tmp/x/{y1/{a,b},y2}
~]#tree /tmp/x 驗證
例如3 創建a_c,a_d,b_c,b_d
~]#mkdir -pv /tmp/{a/{c,d},b/{c,d}}
或
~]#mkdir /tmp/{a,b}_{c,d} -v 或 ~]#mkdir -v /tmp/{a,b}_{c,d}
~]#tree /tmp/a 驗證
- 實驗題
[root@2.250: tmp]#mkdir -p /tmp/mylinux/
[root@2.250: tmp]#cd /tmp/mylinux
[root@2.250: mylinux]#mkdir -p {bin,boot/grub,dev,etc/{rd.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
[root@2.250: mylinux]#tree
.
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rd.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var