[转帖]Bash编程学习笔记(二)_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4401 | 回复: 0   主题: [转帖]Bash编程学习笔记(二)        下一篇 
tk
注册用户
等级:中士
经验:207
发帖:80
精华:0
注册:2011-10-19
状态:离线
发送短消息息给tk 加好友    发送短消息息给tk 发消息
发表于: IP:您无权察看 2011-11-3 16:04:40 | [全部帖] [楼主帖] 楼主

读写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



代码

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




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



代码

  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)



代码

  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.  



命令替换适用于任何命令



代码

  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中列出的变量赋新值



代码

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

只读变量的值不能重设

代码

  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中的变量



代码

  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  




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论