博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell脚本基础----变量
阅读量:6350 次
发布时间:2019-06-22

本文共 1866 字,大约阅读时间需要 6 分钟。

  • 1.1shell的定义

    1.命令的堆积

    2.特定的语法与特定的命令组成的文件

    执行脚本命令

    bash   test.sh   不需要添加执行权限,使用解释器直接解释sh    tesh.sh./tesh.sh     相对路径,需要添加执行权限

1.2shell脚本基础---变量

变量:用一个固定的字符串表示不固定的内容

变量名称注意事项

1.不能以数字开头(包含字母、数字、下划线)2.不能使用程序中的保留字(例如:if   for)3.不能跟系统中已有的环境变量重名(尽量不要全部使用大写,尽量不要用‘_’下划线开头)4.见名知义

变量类型

"字符型"     例如:a=abc    "数字型"       整型      浮点型,例如:a=1.1    "布尔型“(是否)   true   false

变量操作

设置变量 引用变量

$变量名

${变量名}

**bash特性**      "反斜杠    \   使反斜杠后面的一个变量变为字符串"     "单引号      ’   转义其中所有的变量为单纯的字符串"     "双引号    ""    保留其中的变量属性,不进行转义处理"     "反引号    ``     把其中放入命令执行后返回结果"撤销变量(unset  a  作用范围:仅在当前shell中有效)

bash变量类型

环境变量

export     作用域为当前shell进程及其子进程

shell脚本基础----变量

 

本地变量(局部变量)

"Var_name=valuue"  本地变量,作用域为当前shell进程。对当前shell外的其他shell进程,包括当前shell的父shell,子shell进程均无效"Local  var_name=value"   局部变量,作用域为当前代码段,常用于函数

位置变量

$1,$2    用于引用脚本的参数shirt      依此向前推进

特殊变量(bash内置的,用来保存某些特殊数据的变量,也称系统变量)

"$#        是传给脚本的参数的个数""$0         是脚本本身的名字""$!          是shell最后运行的后台Process的PID""$@        是传给脚本的所有参数的列表""$*          是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个""$$         是脚本运行的当前进程ID号 ""$?         是显示上条命令的退出状态,0表示没有错误,其他表示有错误"

bash内建环境变量

"[root@yaoxiaorong ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@yaoxiaorong ~]# echo $SHELL/bin/bash[root@yaoxiaorong ~]# echo $UID0[root@yaoxiaorong ~]# echo $HISTSIZE1000[root@yaoxiaorong ~]# echo $HOME/root[root@yaoxiaorong ~]# echo $PWD/root[root@yaoxiaorong ~]# echo $HISTFILE/root/.bash_history[root@yaoxiaorong ~]# echo $PS1[\u@\h \W]\$ "

只读变量

readonly   不能修改值,不能销毁,只能等shell进程

脚本基础

定义:按实际需求,结合命令流程控制机制实现的源程序
程序返回值

程序执行的结果程序状态返回代码(0-255)0:正确执行1-255:错误执行,1、2、127系统预留,有特殊意义

脚本测试

bash -n test.sh     检查脚本是否有语法错误bash  -x  test.sh    单步执行,检查脚本错在那里

写脚本注意事项

禁止将未成功执行过的代码直接写进脚本脚本中的命令一定要用绝对路径

shell算术运算

A=3B=6let  C=$A+$B   表达式C=$[$A+$B]    表达式C=(($A+$B))    表达式C=` expr  $A   + $B `  算术运算表达式,表达式各操作及运算符之间要有空格,而且要使用命令引用

转载于:https://blog.51cto.com/13835001/2153303

你可能感兴趣的文章
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>
Ubuntu 16.04安装Nginx
查看>>
从 JS 编译原理到作用域(链)及闭包
查看>>
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
每周记录(三)
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>
linux ssh tunnel使用
查看>>
十、详解FFplay音视频同步
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
小猿圈Python教程之全面解析@property的使用
查看>>
mpvue开发小程序所遇问题及h5转化方案
查看>>
View和Activity的生命周期
查看>>
解决PHP下载大文件失败,并限制下载速度
查看>>
java B2B2C Springcloud电子商城系统—Feign实例
查看>>
java B2B2C Springcloud多租户电子商城系统 (五)springboot整合 beatlsql
查看>>