怎么进行shell变量替换
本篇文章为大家展示了怎么进行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变量替换,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。