首页 > 系统相关 >shell常用的方法

shell常用的方法

时间:2023-03-07 18:25:03浏览次数:39  
标签:返回 文件 常用 shell false 方法 file 检测 true

Shell 数组:
关联数组使用 declare 命令来声明,语法格式如下:
declare -A site

site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"

echo ${site[@]} 或者echo ${site[*]} #输出所有值

echo ${#my_array[@]} #统计个数

Shell 传递参数:
$0 $1

$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

运算符:
val=`expr 2 + 2`
echo "两数之和为 : $val"

关系运算符:
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

布尔运算符:
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

逻辑运算符:[[ ]]

&& 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true

字符串运算符:

= 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
!= 检测两个字符串是否不相等,不相等返回 true。 [ $a != $b ] 返回 true。
-z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。
-n 检测字符串长度是否不为 0,不为 0 返回 true。 [ -n "$a" ] 返回 true。
$ 检测字符串是否不为空,不为空返回 true。 [ $a ] 返回 true。

 

文件测试运算符:
-b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
-c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。
-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。
-p file 检测文件是否是有名管道,如果是,则返回 true。 [ -p $file ] 返回 false。
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。
-r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。


流程控制:
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

for var in item1 item2 ... itemN; do command1; command2… done;

case"
site="runoob"

case "$site" in
"runoob") echo "菜鸟教程"
;;
"google") echo "Google 搜索"
;;
"taobao") echo "淘宝网"
;;
esac

标签:返回,文件,常用,shell,false,方法,file,检测,true
From: https://www.cnblogs.com/yelj/p/17189062.html

相关文章

  • 360安全浏览器使用IE7内核打开网站的设置方法
    1、首先打开电脑中的360安全浏览器,在浏览器右上角可以看到一个由三条横线组成“打开菜单”图标,使用鼠标点击该图标2、点击之后后弹出360安全浏览器的菜单窗口,在窗口中点......
  • cmd常用命令
    一、文件和文件夹操作命令dir:显示目标内容、路径md:创建目录mdC:\dms:创建dms文件夹mdC:\dms\a\b\c\drd:删除目录格式:命令  参数  路径rd /S  /Q  C:\dm......
  • 常用正则表达式
     1、数字1、数字:^[0-9]*$2、n位的数字:^\d{n}$3、至少n位的数字:^\d{n,}$4、m-n位的数字:^\d{m,n}$5、零和非零开头的数字:^(0|[1-9][0-9]*)$6、非零开头的最多......
  • 一些GIT常用
    gitinit-初始化一个新的Git仓库。gitclone<url>-从远程仓库克隆代码到本地仓库。gitadd<file>-将文件添加到暂存区。gitcommit-m"<message>"-提交已添......
  • HTMLReport使用2 | HTMLReport使用方法详解
    (2|HTMLReport的使用)注:以下实例来源于官网。1日志为测试报告中添加过程日志;多线程下,在报告中会分别记录每个线程的日志,同时会产生与测试报告同名的测试log文件。......
  • Docker启动RabbitMQ访问15672连接超时解决方法
    docker成功启动rabbitmq后访问15672端口报连接超时原因:rabbitmq默认web界面管理插件是关闭的,需要通过命令开启解决办法:1、查看rabbit的容器id:dockerps2、进入......
  • Java函数(方法)的默认值问题
    Java函数(方法)的默认值问题 Java不能为函数(方法)设置默认参数。原因是“默认参数”和“方法重载”同时支持的话有二义性的问题,但使用“方法重载”可以间接地实现”默认......
  • 创建型:工厂模式-工厂方法、抽象工厂
    问题简单工厂中我们通过参数来返回不同的产品对象,如果管理的对象过多,这个工厂函数会比较庞大,且当我们需要增加一个新的产品时,需要修改这个工厂方法,违反开闭原则(对拓展开......
  • conda常用命令
    在使用python的时候,必然要接触到的就是包管理器了。python常用的包管理器一般有pip、conda、easy_install、poetry、pyenv。pip是官方退出的包管理器,可以下载、安装、升级和......
  • uni-app 组件传值 props 对象中传有方法, 小程序上被过滤
    uni-app组件传值props对象中传有方法,微信小程序上会被过滤,uniapp小程序props传值丢失uniapp中父组件向子组件传递prop时,如果prop是对象,对象内部不能包含function属......