怎么进行shell变量替换

发布时间:2021-11-06 18:30:24 作者:柒染
来源:亿速云 阅读:164

本篇文章为大家展示了怎么进行shell变量替换,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

#!/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:~$ 

上述内容就是怎么进行shell变量替换,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Shell变量知识进阶
  2. shell变量快速入门

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

shell

上一篇:如何进行Linux Kernel iowait 时间的代码原理分享

下一篇:如何进行SSH免密码登录配置

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》