首页 > 系统相关 >shell脚本常用命令

shell脚本常用命令

时间:2023-11-06 13:55:16浏览次数:34  
标签:脚本 shell devices echo item 参数 常用命令 fi line

#!/bin/bash
echo $1

adb devices > devices.txt
echo "开始读取设备"

line_num=0
while read -r line
do
    if [ $line_num != 0 ]&&[ -n "$line" ];
    then
        devices_info=`echo $line | cut -d " " -f 1`
        echo $devices_info
    fi
    let line_num++
done < devices.txt

echo "hello world"

echo "你好啊,大妹子"

NAME="杨洛峋"
echo "$NAME"
echo $NAME

#系统变量
#显示系统目录
echo $HOME
#显示当前目录(相当于pwd命令)
echo $PWD


#将命令返回值赋值给变量
#LIST=`ls` 反引号,执行里面的命令
#LIST=$(ls) 等价于反引号
LIST=`ls`
echo "命令返回值:$LIST"

#$0 代表命令本身、$1-$9 代表第1到9个参数,10以上参数用花括号,如 ${10}
#输出命令行输入参数0,1,2
echo $0 $1 $2
#输出命令行第一个参数
echo $0
#输出命令行第二个参数
echo $1

echo "------"
#命令行中所有参数,且把参数看成一个整体
echo $*

#命令行中所有参数,且把每个参数区分对待
echo $@

#所有参数个数
echo $#

#下面演示预定义变量
#$$ :当前进程的 PID 进程号
echo "输出当前进程的PID"
echo $$

#$! :后台运行的最后一个进程的 PID 进程号
echo "输出后台运行的第一个进程的PID"
echo $!

#$? :最后一次执行的命令的返回状态,0为执行正确,非0执行失败
echo "最后一次执行的命令的返回状态"
echo $?


#运算符
#$((运算式)) 或 $[运算式]
#expr m + n 注意 expr 运算符间要有空格
#expr m - n
#expr \*,/,% 分别代表乘,除,取余
echo $((2+3))
echo $(((2+3)*4))
echo $[(2+3)*4]

echo `expr 2 + 3`

#条件判断
#[ condition ] 注意condition前后要有空格。非空返回0,0为 true,否则为 false
if [ 'yw'='yw01' ]
then
    echo '等于'
fi

if [ 20 > 10 ]
then
    echo '大于'
fi

#判断指定的文件是否存在.这里的-e我试了一下,加不加都可以(windows10)
if [ -e devices.txt ]
then
    echo '存在'
fi

if [ 'yw' = 'yw' ] && echo 'hello' || echo 'world'
then
    echo '条件满足,执行后面方法'
fi


AGE=7
if [ $AGE -gt 5 ]
then
    echo '年龄大于5岁了'
elif [ $AGE -lt 5 ]
    echo '年龄刚好5岁'
then
    echo '年龄不足5岁'
fi

#case语法

case $AGE in
'5')
echo '五岁了'
;;
'6')
echo '6岁了'
;;
*)
echo '不知道年龄多大'
;;
esac


#for循环
#疑问,如何在shell脚本中定义一个数组
NAMES=('德玛西亚' '德邦总管' '嘉文四世')
for item in $NAMES
do
    echo $item
done

#循环输出命令行中的参数
for item in "$*"
do
    echo "命令行中参数:$item"
done

for item in "$@"
do
    echo "$item"
done

#输出1加到100
SUM=0
for ((i=1;i<100;i++))
do
    SUM=$[$SUM+$i]
done
echo $SUM


#while循环
TOTAL=0
INDEX=0
while [ $INDEX -le $1 ]
do
    TOTAL=$[$TOTAL+$INDEX]
    INDEX=$[$INDEX+1]
done

echo $TOTAL

#-eq   //equals等于
#-ne   //no equals TEF 不等于
#-gt   //greater than AF 大于
#-It    //less than IF 小于
#-ge  //greater equals大于等于
#-1e  //1ess equals小于等于
#注:
#1、在shell中进行比较时,结果为0代表真,为1代表假.
#2、-eq,-ne等比较符只能用于数字比较,有字符也会先转换成数字然后进行比较。


#读取控制台输入
#语法 read(选项)(参数)
#read -p "请输入一个num1=" NUM1
#echo "你输入的num1的值是:$NUM1"

#read -t 10 -p "请在10秒内输入一个输在num2=" NUM2
#echo "你输入的num2的值为:$NUM2"

#shell中的函数
#basename,删掉路径最后一个 / 前的所有部分(包括/),常用于获取文件名
#基本语法
#basename [pathname] [suffix]
#basename [string] [suffix]
#如果指定 suffix,也会删掉pathname或string的后缀部分。
basename /user/bin/sort
basename include/sudio.h
basename incude/sudo.h .h

#dirname,删掉路径最后一个 / 后的所有部分(包括/),常用于获取文件路径。
#基本语法
#dirname pathname
#如果路径中不含 / ,则返回 '.' (当前路径
dirname /user/bin
dirname dir/str dir1/str
dirname stuio.h

result=`dirname /user/bin`
echo "获取结果:$result"


#自定义函数
function getName(){
    echo "获取用户名称"
}
#调用函数
getName

 

标签:脚本,shell,devices,echo,item,参数,常用命令,fi,line
From: https://www.cnblogs.com/tony-yang-flutter/p/17812468.html

相关文章

  • shell中特殊语法
    #脚本只要发生错误,就终止执行set-e#解决管道的情况,只要一个子命令失败,整个管道命令就失败,脚本会终止执行set-eopipefail#每行行首增加特殊字符sed-i"s#^#\\\'&#g"test.txt#每行行尾增加特殊字符sed-i"s#$#\\\'#g"test.txt#文本中多行合并到一行并以,间隔paste-s......
  • Java eclipse中shell窗口怎么居中显示
    protectedvoidcreateContents(){shell=newShell();shell.setSize(800,600);shell.setText(title);intwidth=shell.getDisplay().getBounds().width;//找到createContents这个方法,得到屏幕的宽度。intheight=shell.getDi......
  • 模拟攻击beescms框架网站,并且一步一步渗透测试,上传shell,连接蚁剑,拿到对方网站根目录
    打开网站发现它是beescms框架搭建的网站,一言不合直接用webpathbrute扫描发现了管理员登录页面尝试任意用户名密码登录发现不太行,直接暴力破解,先burp抓数据包发现有4个参数有user,password,code,submit,把submit=ture修改为submit=false验证码就不会刷新了就是284c。接下来......
  • 什么是shell脚本
    什么是shell脚本?当命令或者程序语句写在文件中,我们执行文件,读取其中的代码,这个程序文件就称之为shell脚本。在shell脚本里定义多条Linux命令以及循环控制语句,然后将这些Linux命令一次性执行完毕,执行脚本文件的方式称之为,非交互式方式。Windows中存在*.bat/批处理脚本Linux中......
  • 执行shell脚本的方式
    执行shell脚本的方式bashscript.sh或shscripte.sh,文件本身没权限执行,没x权限,则使用的方法,或脚本未指定shebang,重点推荐的方式使用绝对/相对路径执行脚本,需要文件含有x权限sourcescript.sh或者.script.sh,代表执行的含义,source等于点.少见的用法,sh<......
  • 脚本语言
    脚本语言shell脚本语言属于一种弱类型语言无需声明变量类型,直接定义使用。强类型语言,必须先定义变量类型,确定是数字、字符串等,之后再赋予同类型的值。centossteam9系统中支持的shell情况,有如下种类[root@localhost~]#cat/etc/shells/bin/sh......
  • Shell内置命令、外置命令
    Shell内置命令、外置命令什么是内置命令,什么是外置命令?内置命令:在系统启动时就加载入内存,常驻内存,执行效率更高,但是占用资源外置命令:系统需要从硬盘中读取程序文件,再读入内存加载外置命令也称之为,自己单独下载的文件系统命令,处于bashshell之外的程序#一般目录会存放在以......
  • Shell系列---【常用脚本之---java启动脚本:run.sh】
    run.sh#!/bin/sh-lapplication=node_exporterPORT=1888CUR_IP=${hostname-I|awk'{print$1}'}command="/opt/app/middles/node_exporter/node_exporter--web.listen-address=:$PORT"#停止stop(){ echo"=============================......
  • adb常用命令(持续更新)
    一、概述最近想研究scrcpy投屏神器的构建过程,里面涉及了不少的知识点,如:meson、ninja、phthon3脚本、shell脚本、gradle脚本(groovy)、adb常用命令等等而这篇就先回顾一下adb的常用命令二、常用命令介绍1.配置adb环境变量其实就是配置一下androidsdk的......
  • Elasticsearch常用命令总结
    Elasticsearch常用命令总结查看集群健康状态-green:每个索引的primaryshard和replica都是active状态,ES集群正常。-yellow:每个索引的primaryshard是active状态,但是部分的replicashard不是active,ES集群可以正常使用。-red:不是所有索引的primaryshard都是active状态,部......