Shell基础:变量类型 & 运算符

Shell变量

Shell支持三种类型的变量

  • 用户自定义变量:用户自定义的变量,变量名以英文字母或下划线开头,区分大小写。
  • 位置变量:根据位置传递参数给脚本的变量,默认支持9个位置变量 $1,$2,$3...$9
  • 预定义变量: 预定义的特殊变量,只能使用,不能修改

用户自定义变量

#定义变量:变量名=变量值, 可以使用"常量/其他变量/命令执行结果"赋值
var1=‘test var‘
var2="test variable $var1"
var3=`date`

#单引号中将$就当作$, 不识别$为特殊符号,不能引用起他变量
echo ‘the price is $100‘

#双引号中可以通过$来引用变量,但无法解析转义符号,要解析转义符和字体格式需要在echo命令前加-e 参数
echo "test /n test"
echo -e "test /n test" 

#`` 反引号可以运行完其中的脚本命令然后赋值给相应的变量,如下执行结果会打印出123.sql的结果和当前日期
str=`cat 123.sql`
strdate=`date`
echo "$str $date`

#使用变量:$变量名
echo "$var $var1"

#变量后直接连接字符串需要用{}隔开使得变量可识别
echo "测试变量${var}test"

# 清除变量
unset var1

位置变量

新建根据参数执行数据库命令脚本

#!/bin/bash
#mysql.sh

conn="/usr/local/mysql/bin/mysql -uroot -p123"

case $1 in
   select)
        sql="select * from test.user"
        ;;
   delete)
       sql="delete from test.user where id =$2"
       ;;
   insert)
      sql="insert into test.user(uname,psd) values(‘$2‘,‘$3‘)"
      ;;
   update)
     sql="update test.user set uname=‘$3‘, psd=‘$4‘ where id=‘$2‘
     ;;
esac

$conn -e "$sql"

运行脚本,以空格为分隔符输入不同个数的参数

#显示test数据库下user表的所有数据./mysql.sh select#删除指定id的用户./mysql.sh delete 4#插入新用户./mysql.sh insert newuser newpsd#更新id=2用户属性./mysqlsh update 2 newuser2 newpsd2

预定义变量  

Shell脚本支持四种形式的预定义变量:

  • $#: 所有位置参数的个数
  • $*: 所有位置参数的内容
  • $0: 当前执行的脚本名(程序或者是进程名)
  • $?: 上一条命令执行的状态,为0代表执行成功,为其他数字(eg:127...)代表执行失败
!/bin/bash
#test pre-defined bash variable
echo "当前脚本的位置参数有${#}个"
echo "当前正在执行的脚本名称是: $0"

if[ [ $? == 0 ] ];then
 echo "上条命令执行成功"
else
  echo  "上条命令执行失败"
fi

for i in $*; do
 echo "位置变量为 $i"
done

运算符

Shell是脚本语言,变量没有区分类型,程序在实际运行的时候根据上下文做类型判断,默认的类型是String,如果需要把变量看作Int类型来进行加减乘除运算,需要采用特殊语法。

  • $((变量1运算符1变量2运算符2变量3)) : 此种方式用的较多, eg: $((2+3+4)); $((2*3))
  • expr 变量1 运算符 变量2 运算符 变量3 :变量和运算符之间一定要用空格隔开,此种方法比较少用, 并且乘法要用转移\*, eg: expr 2 + 3 + 4; expr 2 \* 3

Shell常用运算符

  • /
  • %
时间: 2024-08-02 14:46:30

Shell基础:变量类型 & 运算符的相关文章

JS基础变量、运算符和分支结构

[使用JS的三种方式]   1.HTML标签中内嵌JS(不提倡使用):   <button onclick="javascript:alert('小婊子,真点啊!')">有本事点我呀</button>   2.HTML页面中直接使用JS:   <script type="text/javascript">   //JS代码  </script>   3.引用外部JS文件:   <script language=&

[shell基础]——变量

变量的赋值 #定义变量,注意等号两边没有任何空格 variable=#定义环境变量export variable= #双引号:可含空格.可转义特殊字符 variable=" " #$() 或 反引号:将命令结果赋值给变量 variable=$( ) variable=` ` #将变量值赋值给变量 gg=$aa$bb 变量的取值 #取值$variable #标准写法,建议使用此方法 ${variable} #示例: #DAY=sunday #echo $DAY sunday # echo

python基础 - 变量与运算符

变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type 不是关键字,可以做变量名,但是不建议使用. 变量名区分大小写. 关于列表 a = 1 b = a a = 3 print(b) # 1 a = [1,2,3,4,5] b = a a[0] = '1' print(a) # ['1',2,3,4,5] print(b) # ['1',2,3,4,5

shell基础--变量

source test.sh 和 ./test.sh的区别是source可以把test.sh脚本的变量在脚本执行完还可以用,而./test.sh不行,它的变量只能在脚本里面用. 变量可分为全局变量.局部变量和用户变量. 全局变量是可以在所有的用户,所有的环境上用的. 局部变量只能在本shell里面用. 用户变量只能在指定的用户上用. 每一个用户的家目录都有一个.bash_profile文件,这个文件是用户的变量文件,每次用户登录就会去这个文件里面找到对应的变量. 全局变量的目录在/etc/bas

shell基础--变量的数值计算

变量的数值计算 1.$((表达式)) (1).实验1 [[email protected]~_~ day4]# cat test.sh #!/bin/bash a=6 b=2 echo "a-b=$(($a-$b))" echo "a+b=$(($a+$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a%b=$(($a%$b))" echo &q

shell基础 变量 条件测试 判断结构

Top NSD ENGINEER DAY02 案例1:Shell脚本的编写及测试 案例2:重定向输出的应用 案例3:使用特殊变量 案例4:编写一个判断脚本 案例5:编写一个批量添加用户脚本 1 案例1:Shell脚本的编写及测试 1.1 问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello World!!” 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的

swift(一)基础变量类型

import Foundation println("Hello, World!") /* int a; */ var a = 10 //隐式类型转换 a = 9 println(a) let b = 10 println(b) /* 类型标注 */ //var x:Int //x = 10.3不支持隐式转换 let x: Int = 10 /* 名称不用在符合标示符的规范 */ let 常量 = 10 /* 基本数据类型:整数类型,小树类书 Int8/16/32/64 UInt8/1

【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

0 内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要使用"_"下划线开头 最好做到见名知意 不能使用程序中的保留字,列如if,for等 1.3变量类型 字符型 数值型 整型浮点型 布尔型 条件是和否 #$echo $a 引用 abc 撤销 unset +(变量名)a 1.4变量操作 * 设置变量 * 引用变量 * 撤销变量 单引号和双