标签:shell 变量 编程 参数 linux 执行 环境变量 描述
shell 是一个命令解释器,它为用户提供了一个向linux内核发送请求以便运行程序的界面系统程序,用户可以用shell来启动,挂起,停止甚至是编写一些程序。
shell 快速入门:
脚本的格式要求
1)脚本 以 #!/bin/bash 开始 告诉脚本是以bash来解析的
2)案例 创建一个 echo hello word
#!/bin/bash
echo "hell word"
退出wq
2.1 文件 必须要可执行权限。
chmod 744 myshell.sh 更改用户可执行权限 。 脚本+x 权限
执行 ./myshell.sh 相对路径执行
./root/shell/myshell.sh 绝对路径执行
3.shell 的变量介绍
3. 1 linux shell 中的变量分为,系统变量和用户自定义变量。
3.2 系统变量:$HOME、$PWD、$SHELL $USER 等等
比如echo $HOME 等
案例:输出 系统变量
显示当前shell 所有的变量 set (退出)
4 shell 变量的定义
基本语法
4.1定义变量:变量=值
unset 删除变量
案例解析
A=100
输出 变量A
unset A 删除变量
再次输出变量A
案例2
静态变量用readonly 来申明
readonly A=99 #申明静态变量
echo "A=$A" #输出静态变量 静态变量不能unset
案例4
可以把变量提升为全局变量(环境变量) 来供shell使用
5 定义变量的规则
5.1变量名称可以由字母、数字和下划线组成,但是不能以数字开通。
5.2 等号两侧不能有空格
5.3变量名称一般习惯为大写
6.将命令的返回值给变量
6.1 A=$(ls -la) 运行里面的命令。并把结果返回给变量A
6.2 A=`ls -la` 反引号 是数字1边上的 esc 下面的那个
7.设置环境变量
基本语法
7.1.1 export 变量=变量值 (功能描述:将shell 变量输出为环境变量)
7.1.2 source 配置文件 (功能描述:让修改后的配置信息立即生效)
7.1.3echo $变量名 (功能描述:查询环境变量的值)
理解:
7.2 案例
在/etc/profile 文件中定义NGINX_HOME环境变量
查看环境变量NGINX_HOME的值
在另外一个shell中使用 NGINX_HOME
注意:在输出变量之前,必须要让其生效
sourc /etc/profile
8. 位置参数变量
在执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。
比如 :/myshell.sh 100 200 ,这个就是一个执行shell的命令行,可以再myshell脚本中获取参数信息。
基本语法
$n (功能描述:n为数字,$0 代表命令本身,#$1-$9代表第一到第九个参数,十以上的参数则需要用大括号包含 如$s{10})
$*(功能描述:这个变量代表命令行中的所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量代表命令行中的所有的参数 $@把所有的参数区别对待)
$#((功能描述:这个变量代表命令行中所有参数的个数)
9.预定义变量
9.1.1 基本结束
就是shell 设计者事先已经定义好的变量,可以直接在shell脚本中使用
9.2基本语法
$$ (功能描述:当前进程的号PID)
$!(功能描述:后台运行的最后一个进程的进程号PID)
$?(功能描述:最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行,如果这个变量非0 则证明上一个命令执行不正确。)
9.3 应用实例
在shell 脚本中简单使用一下预定义变量
10.流程控制
10.1 if判断
if [ 条件判断 ];then
程序
fi
或者
if [ 条件判断 ]
then
程序
elif [条件判断]
then
程序
fi
注意事项:[ 条件判断 ],中括号和条件判断之间必须要有空格 推荐使用第二种
案例:60分 nice 低于60分 strive
case 语句
基本语法
case $变量名 in
“值1“)
如果变量的值等于1,则执行程序1
;;
"值2")
如果变量2的值等于2,则执行程序2
……省略其他分支..
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
应用实例
..
如果变量的值
标签:shell,变量,编程,参数,linux,执行,环境变量,描述 来源: https://www.cnblogs.com/xxllx/p/16273144.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。