bash命令行返回值和展开

时间:2022-11-23 19:19:17

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 验证
  • 实验题
 
  1. [root@2.250: tmp]#mkdir -p /tmp/mylinux/
  2. [root@2.250: tmp]#cd /tmp/mylinux
  3. [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}}
  4. [root@2.250: mylinux]#tree
  5. .
  6. ├── bin
  7. ├── boot
  8. │   └── grub
  9. ├── dev
  10. ├── etc
  11. │   ├── rd.d
  12. │   │   └── init.d
  13. │   └── sysconfig
  14. │   └── network-scripts
  15. ├── lib
  16. │   └── modules
  17. ├── lib64
  18. ├── proc
  19. ├── sbin
  20. ├── sys
  21. ├── tmp
  22. ├── usr
  23. │   └── local
  24. │   ├── bin
  25. │   └── sbin
  26. └── var