SHELL

2018-02-27  本文已影响0人  可不可以让我再睡一会儿

#SHELL分享

##shell简介

shell是一种可以直接操作Linux 接口的脚本语言

#!/bin/bash

echo hello world!

##shell语法

####变量: $, unset

#!/bin/bash

your_name="ZHAOJIAN"

echo $your_name

unset your_name

echo $your_name

###变量类型:

1. 局部变量

2. 环境变量: *export* 设置环境变量

3. shell变量

###字符串:"", ''

####拼接字符串

your_name="qinjx"

greeting="hello, "$your_name" !"

greeting_1="hello, ${your_name} !"

echo $greeting $greeting_1

####获取字符串长度

string="abcd"

echo ${#string} #输出 4

####提取子字符串

string="runoob is a great site"

echo ${string:1:4}

###参数:

* $0--文件名

* $n--第几个参数

* $#--参数个数

* $?--上一个退出码

###test:条件

###if

#!/bin/bash

a=30

b=200

if [ $a  -eq  $b ]

then

  echo "a 等于 b"

elif [ $a -gt  $b ]

then

  echo "a 大于 b"

elif [ $a -lt $b ]

then

  echo "a 小于 b"

else

  echo "没有符合的条件"

fi

整数比较:

    -eq      等于,如:if [ "$a" -eq "$b" ]

    -ne      不等于,如:if [ "$a" -ne "$b" ]

    -gt      大于,如:if [ "$a" -gt "$b" ]

    -ge      大于等于,如:if [ "$a" -ge "$b" ]

    -lt      小于,如:if [ "$a" -lt "$b" ]

    -le      小于等于,如:if [ "$a" -le "$b" ]

    <      小于(需要双括号),如:(("$a" < "$b"))

    <=      小于等于(需要双括号),如:(("$a" <= "$b"))

    >      大于(需要双括号),如:(("$a" > "$b"))

    >=      大于等于(需要双括号),如:(("$a" >= "$b"))

字符串比较:

    =      等于,如:if [ "$a" = "$b" ]

    ==    等于,如:if [ "$a" == "$b" ], 与=等价

              注意:==的功能在[[]]和[]中的行为是不同的,如下:

              1 [[ $a == z* ]]    # 如果$a以"z"开头(模式匹配)那么将为true

              2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true

              3

              4 [ $a == z* ]      # File globbing 和word splitting将会发生

              5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true

    !=      不等于,如:if [ "$a" != "$b" ], 这个操作符将在[[]]结构中使用模式匹配.

    <      小于,在ASCII字母顺序下.如:

              if [[ "$a" < "$b" ]]

              if [ "$a" \< "$b" ]    在[]结构中"<"需要被转义.

    >      大于,在ASCII字母顺序下.如:

          if [[ "$a" > "$b" ]]

          if [ "$a" \> "$b" ]  在[]结构中">"需要被转义.

    -z      字符串为"null".就是长度为0.

    -n      字符串不为"null"

###for 循环

for var in item1 item2 ... itemN

do

    command1

    command2

    ...

    commandN

done

###while 循环

while condition

do

    command

done

##常用命令

* cat 打印文件内容 -n 显示行号

*  grep

*  | 管道

*  -v 反选

*  egrep "正则"

*  wc -l 统计行数

*  find *查找文件*

*  测试,计算一下我们一共有多少个Activity文件

*  awk *计算和数据处理*

awk -F '\/' '{print $(NF)}'

*  md5

*  diff -ac

*  sed *修改文本*

sed -i "" 's/buildAsPkg=false/buildAsPkg=true/g' ${settings_gradle}

*  pwd

*  cd ~|-|..

*  cp

*  mv

*  mkdir

*  touch

*  top

*  rm

*  chomd 777

*  echo *输出*

*  printf 格式化输出

*  eval *执行命令*

*  exit n 退出码

*  $? 上个shell的退出码

*  du -sh 查看文件大小

*  result = \`command` 获取程序的运行结果

*  curl 简单的http请求 -H -d -F

*  ps -ef 查看进程

*  \> 输出重定向

*  \& 程序挂起

*  sort 排序 -u 去重排序

*  head 从头读文件

*  tail 从某位读(主要用来跟日志的)

*  uniq 去重

*  read value: 提示用户输入,并将输入赋值给变量

*  ssh 登录服务器

*  sudo

*  ping

*  java -jar/-version

*  adb shell 在android机器上执行shell 命令

*  input 模拟点击

*  monkey

*  pm list packages

*  ps -ef

*  logcat

*  man 查看命令如何使用,或者一般命令有-h, -help

*  history 最近使用的命令

*  tab 自动补齐

*  dirname/basename 路径操作

上一篇下一篇

猜你喜欢

热点阅读