ITPub博客

首页 > Linux操作系统 > Linux操作系统 > shell变量替换

shell变量替换

原创 Linux操作系统 作者:zq1325949 时间:2017-04-28 17:09:58 0 删除 编辑
#!/bin/bash
#-------------------------------------
#--选出10个3的倍数,从给定的自然数开始
#-------------------------------------


#--输入
read -p "请输入一个自然数:" Input
if [ $Input -gt 0] ;then 
  echo "您输入的是自然数,从此自然数开始的10个3的倍数为"
else
  echo "您输入的不是自然数,程序异常退出。"
  exit
fi
#--处理并输出
Count=0
Num=$Input
while [ $Count -lt 10 ] 
do
  let Num2=$Num%3
  if [ $Num2 -eq 0 ] ;then
    echo "$Num"
  let Count++
  fi
  let Num++
done
这个程序一次修改第八行少一个空格0 后面


zq@zq-py:~$ ./xuanshu.sh 
请输入一个自然数:6
您输入的是自然数,从此自然数开始的10个3的倍数为
6
9
12
15
18
21
24
27
30
33
zq@zq-py:~$ ./xuanshu.sh 
请输入一个自然数:0
您输入的不是自然数,程序异常退出。
zq@zq-py:~$ ./xuanshu.sh 
请输入一个自然数:-7
您输入的不是自然数,程序异常退出。
zq@zq-py:~$ ./xuanshu.sh 
请输入一个自然数:6.6
./xuanshu.sh: 第 8 行: [: 6.6: 需要整数表达式
您输入的不是自然数,程序异常退出。


shell函数 shell变量的替换


shell函数的两种表达形态
1.函数名()eg: hello()[echo “hello zq”]
2.function 函数名()  eg:function hello()[echo “hello zq”]


shell函数的使用
 shell函数使用时只需书写函数名即可eg: hello
#!/bin/bash
zq()
{
  echo "zq nihao"
}


function zqq()
{


echo "zqq nihao"
}


zq
zqq
~                                                            
zq nihao
zqq nihao


#!/bin/bash
zq()
{
  echo "zq nihao"
}


function zqq()
{


echo “$1 你好” 
}


zq
zqq  中国       


#!/bin/bash
zq()
{
  echo "zq nihao"
}


function zqq()
{


echo “$1 你好” 
}


zq
zqq  $1 运行这个脚本的时候 可以指定变量 


shell变量的替换
缺省替换:${Var: -value}
若Var变量未被设置,则临时设置未value  eg:${Day: -Sun}
强制替换:${Var: +value} 
若Var变量已被设置,则临时设置为value  eg:${Day: +Sun}
zq@zq-py:~$ echo ${Day:-sunday}
sunday
zq@zq-py:~$ echo $Day


zq@zq-py:~$ echo ${Day:monday}


zq@zq-py:~$ Day=saturday
zq@zq-py:~$ echo ${Day:+monday}
monday
zq@zq-py:~$ echo $Day
saturday
缺省赋值替换${Var: =value}  
若Var变量未被设置,则永久设置为value eg:${Today:=Sun}
zq@zq-py:~$ unset Today
zq@zq-py:~$ echo $Today


zq@zq-py:~$ echo ${Today:=friday}
friday
zq@zq-py:~$ echo $Today
friday
zq@zq-py:~$ echo $Today
friday
zq@zq-py:~$ unset Today
zq@zq-py:~$ echo Today
Today


缺省错误替换${Var: ?string}
若Var变量未被设置,则错误输出为string eg:${Torrow: ?日期错误}  
zq@zq-py:~$ Torrow
Torrow:未找到命令
zq@zq-py:~$ echo Torrow
Torrow
zq@zq-py:~$ echo ${Torrow:?"no set value"}
bash: Torrow: no set value
zq@zq-py:~$ Torrow=sunday
zq@zq-py:~$ echo ${Torrow:?"no set value"}
sunday
zq@zq-py:~$ 


单次匹配替换${Var/pattern/string}
若Var变量匹配pattern存在,则单次替换输出为string
eg:${zq/za/zb}
全局匹配替换${Var//pattern/string}
若Var变量匹配pattern多次,则全部替换输出为string
eg:${zq//za/zb}
zq@zq-py:~$ echo $Torrow
sunday
zq@zq-py:~$ echo ${Torrow/sun/aun}
aunday
zq@zq-py:~$ echo $Torrow
sunday
zq@zq-py:~$ Torrow=${Torrow}sunday
zq@zq-py:~$ echo $Torrow
sundaysunday
zq@zq-py:~$ echo ${Torrow/sun/aun}
aundaysunday
zq@zq-py:~$ echo ${Torrow/aun/aun}
sundaysunday
zq@zq-py:~$ echo ${Torrow//sun/aun}
aundayaunday
zq@zq-py:~$ 








     

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31453498/viewspace-2138185/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: python学习笔记
请登录后发表评论 登录
全部评论

注册时间:2017-04-17

  • 博文量
    26
  • 访问量
    7852