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

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

hot3.png

shell基础:

sh命令: 参数: -c string 将string当作命令来执行。 -x xxx.sh 开启调试模式,shell在执行脚本的过程中把它实际执行的命令都显示出来,并且在命令的行首显示一个"+"号(shell内置变量PS4='+ '),同set -x。 补充:可以通过修改$PS4的值,从而使每一条实际执行的命令前面显示其行号以及所属的函数名。eg:先执行export PS4='+{$LINENO:${FUNCNAME[0]}} ', 然后再使用“-x”选项来执行脚本。

!/usr/bin/env bash

说明:脚本解释器在linux中可能被安装在不同的目录,而env可以在系统的PATH目录中查找,故脚本用env启动。

set命令: set 列出所有的环境变量。

参数:	-参数	设置某个参数	+参数	取消某个参数的设置。		eg: 		set -e 	当命令的返回值不等于0(即执行该命令报错)时,立即退出shell。		set +e 	表示取消-e参数,即当命令的返回值不等于0时,不会立即退出shell,而是会继续执行shell脚本。	-x 	开启调试模式。

命令行参数 $0 脚本的名字 $1, $2, ..., $9  脚本第1个到第9个命令行参数 $# 命令行参数的个数 $* 以“参数1 参数2 参数3..” 的形式返回所有命令行参数的值 $@ 以“参数1”“参数2”“参数3”.. 的形式返回所有命令行参数的值 $? 最后一条命令的退出状态码(执行成功返回0,执行失败返回1) $$ 正在执行的进程的ID(PID)

变量: 引用变量: ${variable} $variable

清除变量:	unset variable变量替换	$variable    			保存在variable中的值	${variable}    		保存在variable中的值	${variable:-string} 	如果variable的值非空,则值为variable,否则值为string	${variable:+string} 	如果variable的值非空,则值为string,否则值为空	${variable:=string} 	如果variable的值非空,则值为variable,否则值为string且variable的值设置为string	${variable:?string} 	如果variable的值非空,则值为variable,否则显示string并退出引号的说明:	单引号括起来的的字符都作为普通字符对待。	双引号括起来的字符,除$、\、'(单引号)、"(双引号)之外,其余字符作为普通字符对待。	反引号括起来的字串被shell解释成命令,在执行时,shell首先执行该命令,并以它的标准输出结果取代整个反引号部分。将命令的执行结果赋值给变量:	# 将某个shell命令的执行结果赋给某个变量。注:赋值号“=”的左右两边不能直接跟空格,否则shell会将其视为命令。	variableName=`command`	variableName=$(command)定义系统提示符的变量	eg:PS1='[\u@\t \w]\$ '	\u:显示当前用户名	\h:显示简写主机名。如默认主机名“localhost”	\$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”	\w:显示当前所在目录的完整名称	\W:显示当前所在目录的最后一个目录	\t:显示24小时制时间,格式为“HH:MM:SS”	\T:显示12小时制时间,格式为“HH:MM:SS”	\d:显示日期,格式为“星期 月 日”	\A:显示24小时制时间,格式为“HH:MM”	\#:执行的第几个命令

条件判断: 概念:表达式用中括号[]或双中括号[[]]括住,条件表达式与左右方括号之间必须都保留一个空格。 说明:单中括号中的变量必须要加双引号,双中括号中的变量不用加双引号。 举例:[ -z "$pid" ] VS [[ -z $pid ]] 参数: 逻辑运算符: -a expr1 -a expr2 逻辑与 -o expr1 -o expr2 逻辑或 ! 逻辑非 数值判断: -eq  num1 -eq num2 是否相等 -ne num1 -ne num2 是否不相等 -gt  num1 -gt num2 是否大于 -ge  num1 -ge num2 是否大于等于 -lt  num1 -lt num2 是否小于   -le  num1 -le num2 是否小于等于 字符串判断: =    str1 = str2  字符串是否相等 !=   str1 != str2 字符串是否不等 -n   -n str1 字符串是否非空 -z   -z str2 字符串是否是空串(长度是否等于0 z:zero) 文件判断: -e   -e filenaem  文件是否存在 -r   -r filename  文件是否存在且可读 -w   -w filename  文件是否存在且可写 -s   -s filename  文件是否存在且长度非0 -f   -f filename  文件是否存在且是普通文件 -d   -d filename  文件是否存在且是一个目录 -L -L finename  文件是否存在且是一个链接

转载于:https://my.oschina.net/u/1399755/blog/3012397

你可能感兴趣的文章
hadoop2.6.5+zookeeper在虚拟机环境下的安装
查看>>
UIDatePicker扩展支持年月日时分选择
查看>>
QR Code Encoder
查看>>
CODialog
查看>>
Java --并发--继续 第五弹--闭锁
查看>>
activeMQ安装及启动
查看>>
20款jQuery & CSS文字特效插件(有图有真相)
查看>>
matplotlib画图(5)
查看>>
卸载Php
查看>>
web框架使用一览
查看>>
windows 上 安装SIKULI
查看>>
linux date 命令详解
查看>>
PHP友好的时间显示函数
查看>>
android之wifi移植全过程(一)
查看>>
[Android]DevicePolicyManager的用处
查看>>
ehcache
查看>>
地址空间分布
查看>>
String indexOf 之BF、KMP算法
查看>>
CentOS6.4安装JDK,卸载自带的OpenJDK
查看>>
EasyUI怎么获取文本框里输入的值
查看>>