变量引用

两种:

${变量名}

$变量名

例如:

filepath="/home/mytool"
filename="t1.txt"

可以写成

echo "$filepath/$filename"
或者
echo "${filepath}/${filename}"

打印结果:

/home/mytool/t1.txt

 

变量的判断

还有一些变量判断的使用:

${varname:-word}  # varname为空就返回wrod,不为空就返回varname。目的是返回一个默认值
${varname:+word}  # varname为空就返回空,不为空就返回varname。目的是测量varname是否有值
${varname:=word}  # varname为空就返回word,并且把word赋值给varname
${varname:?message} # varname为空,就返回message作为提示信息。目的是提醒操作者需要给值。

上面语法的含义是,如果变量varname存在且不为空,则返回它的值,否则打印出varname: message,并中断脚本的执行。如果省略了message,即${varname:?}则输出默认的信息“parameter null or not set.”。它的目的是防止变量未定义,比如${count:?"undefined!"}表示变量count未定义时就中断执行,抛出错误,返回给定的报错信息undefined!

# 1表示脚本的第一个参数(在执行脚本的时候传参)。如果该参数不存在,就退出脚本并报错filename missing.。 
filename=${1:?"filename missing."}

变量 – 《阮一峰 Bash 脚本教程》 – 书栈网 · BookStack

 

四则运算

$(( ))  或  $[ ] 

echo $[5+2]  # 7

echo $[5*2]  # 10

num=$[2**10]
echo $num  # 1024

shell脚本——简单的四则运算和shell计算器脚本_编写一个能读入位置参数实现任意四则运算功能shell脚本-CSDN博客 

传参 $1 $2

创建脚本 t1.sh 

#/bin/bash
echo "$1 * $2 + $3 = $[ $1 * $2 + $3 ]"

执行脚本:

sh t1.sh 1 2 3
或者
./t1.sh 1 2 3

 

shell脚本中$0 $1 $# $@ $* $? $$ 的各种符号意义详解_shell $0-CSDN博客

本站无任何商业行为
个人在线分享 » shell 变量引用 ${}、$,传参 $1、$2,四则运算 $[]
E-->