脚本

curl

  • 输出某个文件 -o(output)
  • curl -o ./build-android-app.sh http://git.caimi-inc.com/client/jenkins-pack-code/raw/master/android/app/build-android-app.sh 将url 转为本地的./build-android-app.sh
  • 一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具
  • -s 减少输出的信息,比如进度
  • -d 指定POST的内容
  • curl -s -d "type=android&appname=${ProjectName}" "http://192.168.4.233:8092/api/get_channel_txt_by_appname" > ${dir}/markets.txt

chmod

  • chmod [-cfvR] [--help] [--version] mode file...
  • chmod 777 file
  • 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
  • r=4,w=2,x=1 r 表示可读取,w 表示可写入,x 表示可执行
  • 若要rwx属性则4+2+1=7;
  • 若要rw-属性则4+2=6;
  • 若要r-x属性则4+1=7。

#!/bin/bash

  • 这个脚本需要什么解释器来执行 使用bash来执行

set [+-abCdefhHklmnpPtuvx]

  • 设置shell执行过程中发生的事 所有
  • -a  标示已修改的变量,以供输出至环境变量。
  • -b  使被中止的后台程序立刻回报执行状态。
  • -C  转向所产生的文件无法覆盖已存在的文件。
  • -d  Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
  • -e  若指令传回值不等于0,则立即退出shell。
  • -f   取消使用通配符。
  • -h  自动记录函数的所在位置。
  • -H Shell  可利用"!"加<指令编号>的方式来执行history中记录的指* 令。
  • -k  指令所给的参数都会被视为此指令的环境变量。
  • -l  记录for循环的变量名称。
  • -m  使用监视模式。
  • -n  只读取指令,而不实际执行。
  • -p  启动优先顺序模式。
  • -P  启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
  • -t  执行完随后的指令,即退出shell。
  • -u  当执行时使用到未定义过的变量,则显示错误信息。
  • -v  显示shell所读取的输入值。
  • -x  执行指令后,会先显示该指令及所下的参数。
  • +<参数>  取消某个set曾启动的参数。

export [-fnp][变量名称]=[变量设置值]

  • 用于设置或显示环境变量 效力仅及于该次登陆操作
  • -f  代表[变量名称]中为函数名称。
  • -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
  • -p  列出所有的shell赋予程序的环境变量。

$ $() ${}

  • $ 获取变量的值
  • $() 括号里面是个执行的命令
  • ${} 效果类似于$

find

  • find path -option [ -print ] [ -exec -ok command ]
  • 寻找某个路径下的文件
  • find . -name "gradlew"

|

  • 管道符号 把前面1个找到的结果输出给后面1个

head

  • 用来查看具体文件的前面几行的内容
  • head -n 1一直读到n行 但是要删掉头部第一行

[[]] []

  • [[]]中可以是使用&& ||
  • []需要用-a -o !来表示

if else then fi

  • -f 如果文件为常规文件 就是真的
  • -d 如果文件为目录 就为真
  • -e 如果文件存在就为真

dirname [file]

  • 寻找这个文件的目录

>> >

  • 讲某句话输入到 某个文件中 追加内容
  • echo "" >> ${dir}/gradle.properties 强制换行
  • > 表示文件不存在就创建 存在就清空

../ ./ . ~

  • 一个点.代表[当前目录]
  • 两个点..代表上一个目录
  • ./filename代表当前目录下的文件
  • ~代表用户的home 目录

ssh

scp

  • 通过ssh的方式来讲文件进行copy操作(cp)

jq

  • jq .key filename 在file中解析为key的value json所使用

sh

与bash对应的脚本解释器 用sh结尾的都可以用这个来开头写 表示我字儿这句的解释器不一样了

ssh

  • 最简单的方式就是登录某台主机 ssh user@hostname ssh [email protected]
  • -p 指定端口号
  • ssh [email protected] ls -l 运行远程主机的命令
  • -o StrictHostKeyChecking=no 可规避没有信任关系挂死的问题

sudo

  • 暂时执行超级管理员才能执行的命令
  • -i 暂时不用每次都输入密码
  • -u 以指定用户的身份执行命令 后面要跟着一个用户名

你可能感兴趣的:(脚本)