bash linux .ee,Linux下Bash shell学习笔记.md
### 1、shell下没有变量类型和定义的概念。
>1. 变量直接使用不用定义
>2. 所有值都视为字符串。
>3. 在对变量取值都需要加$
>4. 行注释为 #
+ #### 在shell中,算术运算,执行加减除
例如:
var1=5
var2=2
total=`expr $var1+$var2`
##### $ 是取变量值运算符
##### `` 是命令置换符,将expr $var1+$var2执行结果赋值给total
##### expr 是做数学运算的命令
+ #### shell中,算术运算,执行乘
例如:
var1=5
var2=2
total=`expr $var1 \* $var2`
##### * 在shell中为通配符。在此用作乘法需要转义
##### \ 是转义命令符,因此 \*表示乘法。
### 2、设置PATH
PATH 是shell找寻命令的路径。如果执行的命令找不到,会报command not found错误。
修改PATH:
>PATH = $PATH:/usr/temp
### 3、shell脚本第一句应指明解释器
一般第一句为: #!/bin/bash
### 4、条件判断
if 空格 [ 空格 条件1 空格 == 空格 条件二 ] 空格;空格then
>####注意汉字指明的空格 == ; > [] 两边必须有空格
例如:
#!/bin/bash
SYSTEM=`uname -s`
if [ $SYSTEM == "Linux" ] ; then
echo "Linux System"
elif [ $SYSTEM == "FreeBSD" ] ; then
echo "FreeBSD System"
elif [ $SYSTEM == "Solaris" ] ; then
echo "Solaris System"
else
echo "Unknow System"
fi
>#### 判断符号
1、字符串判断
str1 = str2 当两个串有相同内容时为真
str1 != str2 当串str1和str2不等时为真
-n str1 当串的长度大于0时为真(串非空)
-z str1 当串的长度为0时为真(空串)
str1 当串str1为非空时为真
2、数字的判断
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真
3、文件的判断
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符设备文件为真
-b file 文件为块设备文件为真
-s file 文件大小非0时为真
4、复杂逻辑判断
-a 与
-o 或
! 非
### 5、switch/case结构
#!/bin/bash
SYSTEM=`uname -s`
case $SYSTEM in
Linux)
echo "Linux System"
;;
FreeBSD)
echo "FreeBSD System"
;;
Solaris)
echo "Solaris System"
;;
*)
echo "Unknow System"
;;
esac
### 6、Shell循环
举例 1:
#!/bin/bash
echo "Use for list 1~10"
for i in `seq 1 10` ; do
echo $i
done
echo "List file in current folder:"
for file in `ls`
do
echo $file
done
举例 2:
#!/bin/bash
echo "Use while list 1~10"
min=1
max=10
while [ $min -le $max ]
do
echo $min
min=`expr $min + 1`
done
### 6、Shell参数解析
+ 参数说明:
$# 表示参数的个数
$* 表示所有的参数
$0 表示程序的名字
$1 表示第一个参数
$2 表示第二个参数
+ 参数解析
实现不同参数,执行不同命令
举例:
#!/bin/bash
while getopts "hv" opt #Parser the arguments
do
case $opt in
h)
usage ;;
v)
version ;;
?)
usage ;;
esac
done
> 函数调用不需要加括号。
>
### Shell的其他应用
#### Shell调试
打开调试 `set -x`
关闭调试 `set +x`
例如: `set -x xxx.sh`
在shell脚本中添加,可局部打开调试。
#### Bash Shell段注释
:<< EOF
注释掉的代码
EOF
#### 配置文件使用
source 或 . 命令可以让ini格式文件的引用生效。
例如:
#!/etc/bash.sh
CONF_FILE=/etc/sysconfig/network-scripts/ifcfg-eth0
source $CONF_FILE
etho $IPADDR
如上,变量IPADDR,未在shell中赋值,但却打印出了IP地址。原因是 `source $CONF_FILE`,是/etc/sysconfig/network-scripts/ifcfg-eth0文件中的IPADDR,被引用到此shell中。
一键复制
编辑
Web IDE
原始数据
按行查看
历史
bash linux .ee,Linux下Bash shell学习笔记.md相关推荐
- Linux与C++11多线程编程(学习笔记)
多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...
- Linux内存从0到1学习笔记(4,TLB)
一.TLB简介 Kernel初始化的时候,会在初始化内存中创建页表:而处理器读取指令和数据的时候需要首先通过MMU查表得到物理地址,然后在访问物理地址读取指令或数据.MMU查表过程汇中需要4次访问内存 ...
- shell学习笔记 (2)
shell学习笔记 (2) ---china.pub.com linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...
- suse linux bash漏洞,Suse11 sp3 下Bash漏洞升级修复
SuSE Linux Enterprise Server 11Bash 漏洞修复方案 系统:Suse-11-sp3-64 Bash:bash-4.4 1.1. Bash升级 1.1.1升级概述 大部分 ...
- [Bash Shell] Shell学习笔记
1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...
- Linux shell 学习笔记(12)— linux 信号、后台运行脚本、作业控制、定时运行任务
1. 处理信号 1.1 Linux 信号 常见的 Linux 信号如下表所示: 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL ...
- Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)
1. 使用多个命令 如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. $ date ; who Mon Feb 21 15:36:09 EST 2014 Christine tty2 ...
- Linux shell 学习笔记(1)— 文件和目录(查看、创建、复制、软硬链接、重命名及删除操作)
1. 启动 shell /etc/passwd 文件包含了所有系统用户账户列表以及每个用户的基本配置信息: christine:x:501:501:Christine Bresnahan:/home/ ...
- 【Linux】Linux Shell 学习笔记:什么是Linux?
I Linux 简介 Linux系统简介 (biancheng.net) Linux和UNIX的关系及区别 (biancheng.net) Linux内核_百度百科 (baidu.com) [什么是 ...
最新文章
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原
- 腾讯云上午突发故障 称运营商光缆中断所致
- Nginx RTMP 功能研究
- 今日头条的 ByteSpider,怎么就成了小网站的“噩梦”?
- Android graphic: bitmap and it's principle
- SQL Server执行大文件SQL脚本
- 学生计算机如何用数字小游戏,【数学思维】小学生数学趣味游戏:你身上的计算器...
- mysql max connects_出现mysql max-connections问题解决解决办法
- python12306抢票_Python3.6实现12306火车票自动抢票,并短信和邮件通知
- QAP,社会网络分析假设检验之一
- 2020双十一商家物流迎来大考:看拙燕仓如何破局?
- 剑魂之刃服务器维护,《剑魂之刃》今日安卓版本更新服务器维护公告
- 自学软件测试1个半月上岸拿5个offer
- Bootstrap中一些常用的类名
- 二维码详解(QR Code)
- 如何使用京东的关键字搜索你想要的商品详情
- 破甲两千六 Spring Cloud 教程(三):添加Spring Cloud 的 Netflix Eureka 插件,实现服务端、客户端的发现与注册
- LayUI动态选项卡iframe使用
- Linux更改一个所有者root为只读权限的文件的权限
- 【花雕体验】14 行空板pinpong库测试外接传感器模块