Linux学习笔记之shell编程基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记之shell编程基础相关的知识,希望对你有一定的参考价值。
编程语言: 机器语言、汇编语言 、高级语言
静态语言:编译性语言 ,特点: 强类型(变量在使用前,必须先声明,甚至还需要初始化);事先转换成可执行文件。包含语言如: C 、C++、JAVA、C#
动态语言:解释性语言 ,特点: 弱类型(变量用时声明,甚至不区分类型);边解释边执行。包含语言如: ASP、ASP.NET 、php 、SHELL 、Python 、PERL
编程能力:
面向过程 :Shell、C
面向对象:Python 、Perl 、JAVA 、C++
Bash :变量 类型
环境变量 :shell 及其子shell ,作为域为当前shell进程及其子进程
查看当前shell 中环境变量的方式:
1、#printenv
2、#env
3、#export
查看当前Shell 中变量
#set VRNAME
撤销变量:
#unset VRNAME
本地变量 (叫局部变量):
例:VRNAME=VALUE
#echo "There are song ${ANIMAIL}s"
位置变量:
例:$1, $2
shift :轮换、轮替
特殊变量(系统变量 )
$? :上一个命令的执行状态返回值
$#:参数的个数
$*:参数的列表
[email protected]:参数的列表
程序执行,可能有两类返回值
程序执行结构
程序代码返回代码:
0:正确执行
1-255 :错误执行 1、2、127 为系统预留
输出重定向
> :输出重定向 ,覆盖输出
>>:追加输出
2>:重定向错误输出
2>>:追加错误输出
&>:重定向标准输出或错误输出至同一文件
脚本:命令的堆叠 ,按照实际需要,结合命令流程控制机制实现的源程序
格式:
#!/bin/bash
#注释行
语句
Bash 中如何实现条件判断
整数测试:
-eq :测试2个整数是否想等 比如 $A -eq $B
-ne :测试2个整数是否不等,不等为真,相等为假
-gt :测试1个数是否大于另一个数
-lt:测试一个数是否小于另一个数
-ge :大于或等于
-le :小于或等于
字符测试:
== :相等,两边需要有空格 示例:[ $A == $B ] 或 [ $A = $B ]
!= : 是否不等
>:大于
< :小于
-n string:测试指定字符串是否为空,空位真,不空为假
-z String :测试指定字符串是否不空,不空位真,空位假
小数保留位数: bc scale=2 ,示例:echo "scale=2;111/22" | bc 或者 bc <<< "scale=2;111/22"
echo "scale=2;$1$2$3 " | bc
文件测试:
-e FILE :测试文件是否存在
-f FILE :测试是否为普通文件
-d FILE :测试指定路径是否为目录
-r:文件是否可读
-w:文件是否可写
-x:文件是否可执行
条件测试的表达式 L
[ expression ]
[[ expression ]]2
expression
命令间的逻辑关系:
逻辑与 : && :如果前面为真,则执行后面的命令
逻辑或: || :如果前面条件为假,则执行后面的命令
组合条件测试:
-a :逻辑与
-o:逻辑或关系
!:非关系
bash 的配置文件
全局配置
/etc/profile ,/etc/profile.d/*.sh ,/etc/bashrc
个人配置
~/.bash_profile ,~/.bashrc
profile类的文件
设定环境变量
登录运行命令或脚本
bash 类的文件
设定本地变量
定义命令别名
登录式shell 如何读取配置文件
/etc/profile ---> /etc/profile.d/*.sh ---> ~/.bash_profile -->~/.bashrc -->/etc/bashrc
非登录式shell
~/.bashrc -->/etc/bashrc-->/etc/profile.d/*.sh
脚本在执行时会启动一个子shell进程
命令行钟启动的脚本会继承当前shell 环境变量
系统自动执行的脚本(非命令行启动)就需要自我定义要的环境变量
本文出自 “Wish_亮” 博客,请务必保留此出处http://itwish.blog.51cto.com/11439802/1965817
以上是关于Linux学习笔记之shell编程基础的主要内容,如果未能解决你的问题,请参考以下文章