打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Bash编程学习笔记(二) - Linux - Tech - JavaEye论坛
读写Shell变量

命令替代操作符及其描述

$variable 得到一个变量的值,如果没有被初始化则为Null 没有被初始化返回NULL
${variable} 得到一个变量的值,如果没有被初始化则为Null,通常在其他的东西要添加到变量值的时候使用 同上
${variable:-string} 得到一个变量的值,如果这个变量没有被定义则返回一个确定的值        variable存在而且不是空值的时候返回变量的值,否在那返回null
${variable:=string} 得到一个变量没有被定义则把一个已知的值赋给它并返回这个值       variable存在不是空值的时候返回值,否则string赋给variable,返回string
${variable:?string} 如果变量没有被定义则显示一条消息 variable存在而且不是空值的时候,返回变量的值,否则显示字符串variable,并在其后显示message
${variable:+string} 测试一个变量存在与否 variable存在而且不是空值的时候返回string,否则返回null


Java代码
  1. yaoyuan-desktop$echo $name  
  2.   
  3. yaoyuan-desktop$name=yaoyuan  
  4. yaoyuan-desktop$echo $name  
  5. yaoyuan  
  6. yaoyuan-desktop$echo $place  
  7.   
  8. yaoyuan-desktop$echo ${name:-John} ${place:-Portland}  
  9. yaoyuan Portland  
  10. yaoyuan-desktop$echo ${place?"Not defined"}  
  11. bash: place: Not defined  
  12. yaoyuan-desktop$echo ${name:+"Not defined"}  
  13. Not defined  
  14. yaoyuan-desktop$echo ${place:+"Not defined"}  
  15.   
  16. yaoyuan-desktop$echo ${place:="San Francisro"}  
  17. San Francisro  
  18. yaoyuan-desktop$echo ${name:-John} ${place:-Portland}  
  19. yaoyuan San Francisro  



'',"",*,\的使用

Java代码
  1. yaoyuan-desktop$name=yaoyuan  
  2. yaoyuan-desktop$echo $name  
  3. yaoyuan  
  4. yaoyuan-desktop$name=yao yuan  
  5. bash: yuan:找不到命令  
  6. yaoyuan-desktop$echo $name  
  7. yaoyuan  
  8. yaoyuan-desktop$name=yaoyuan*  
  9. yaoyuan-desktop$echo $name  
  10. yaoyuan  
  11. yaoyuan-desktop$name=yaoyuan  
  12. yaoyuan-desktop$echo $name  
  13. yaoyuan  
  14. yaoyuan-desktop$echo "$name"  
  15. yaoyuan*  
  16. yaoyuan-desktop$echo "Is Not Hello World! "  
  17. Is Not Hello World!   
  18. yaoyuan-desktop$echo '$name'  
  19. $name  
  20. yaoyuan-desktop$echo '$name'  
  21. $name  




Shell命令替换

$(command)

Java代码
  1. yaoyuan-desktop$command=pwd  
  2. yaoyuan-desktop$echo "The value of command is: $command."  
  3. The value of command is: pwd.  
  4. yaoyuan-desktop$command=$(pwd)  
  5. yaoyuan-desktop$echo "The value of command is: $command."  
  6. The value of command is: /home/yaoyuan.  

命令替换适用于任何命令

Java代码
  1. yaoyuan-desktop$echo "The date and time is $(date)."  
  2. The date and time is 2008年 10月 12日 星期日 01:41:28 CST.  



创建只读的用户自定义的变量

declare -r [name-list]
typeset -r [name-list]
readonly [name-list]

用于阻止对name-list中列出的变量赋新值

Java代码
  1. yaoyuan@yaoyuan-desktop:~/ScriptFile$ declare -r name=Yao place=Yuan  
  2. yaoyuan@yaoyuan-desktop:~/ScriptFile$ echo $name $place  
  3. Yao Yuan  
  4.   
  5. yaoyuan@yaoyuan-desktop:~/ScriptFile$ name=Yuan  
  6. bash: name: 只读变量  
  7. yaoyuan@yaoyuan-desktop:~/ScriptFile$ place="YaoYuan"  
  8. bash: place: 只读变量  


只读变量的值不能重设
Java代码
  1. yaoyuan@yaoyuan-desktop:~/ScriptFile$ unset name  
  2. bash: unset: name:无法重置:只读的 variable  
  3. yaoyuan@yaoyuan-desktop:~/ScriptFile$ unset place  
  4. bash: unset: place:无法重置:只读的 variable  


从标准输入设备读入

read [options][variable-list]

用于从标准输入设备读入一行,把读入的词赋给在variable-list中的变量

Java代码
  1. yaoyuan@yaoyuan-desktop:~/ScriptFile$ cat read_demo  
  2. #! /bin/bash  
  3. echo -n "Enter input: "  
  4. read line  
  5. echo "You entered: $line"  
  6. echo -n "Enter another line: "  
  7. read word1 word2 word3  
  8. echo "The first word is: $word1"  
  9. echo "The second word is : $word2"  
  10. echo "The rest of the line is: $word3"  
  11. exit 0  
  12. yaoyuan@yaoyuan-desktop:~/ScriptFile$ ./read_demo  
  13. Enter input: yaoyuan  
  14. You entered: yaoyuan  
  15. Enter another line: hello shell, I love you  
  16. The first word is: hello  
  17. The second word is : shell,  
  18. The rest of the line is: I love you  


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一些让人很容易忽视的shell基础知识
Bash 实例,第一部分
bash 进阶之变量替换与字符串操作
Linux Shell Bash 陷阱 - Powered by PHPWind.net
shell中各种括号的作用()、(())、[]、[[]]、{}
linux declare
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服