Linux系统ShellShell和命令

Shell 脚本

2018-09-26  本文已影响46人  码匠

环境声明

#!/bin/bash or #!/bin/sh or #!/usr/bin/env bash

文件扩展名

Shell脚本扩展名为.sh ,如 test.sh

执行脚本

执行权限

chmod +x file ,如 chmod +x ./test.sh

运行

./test.sh

变量

定义变量

a=12_var="apple"

使用变量

$a${_var}

只读变量

readonly var

字符串

单引号
双引号
字符串长度

${#var}

str="Money"
echo ${#str}
提取字符串

${var:index:count}

str="Monkey"
echo ${str:0:3}
查找字符串

expr index String subString

str="I have an apple."
echo `expr index "$str" a`

数组

定义数组

array=(a b c)

读取数组

传递参数

运算符

算术运算符

使用 expr 命令

关系运算符

只支持数字

布尔运算符
逻辑运算符
字符串运算符
文件测试运算符

输出

开启转义

echo -e "Good~ \n"

显示结果定向至文件

echo "Hello World" > file 覆盖文件内容

echo "Hello World" >> file 追加内容

显示命令执行结果

echo `date`

格式化输出

使用 printf 命令

printf [format] [arguments...]

参数说明

printf "%-10s %-7s %3s %6s\n" Name Sex Age Score
printf "%-10s %-7s %3d %6.2f\n" Jack Male 27 82.3
printf "%-10s %-7s %3d %6.2f\n" Jennifer Female 25 91.62
printf "%-10s %-7s %3d %6.2f\n" Tom Male 56 96.372

输入

使用 read 命令

参数说明

read -p "Please input your password within 10 seconds: " -n 6 -t 10 -s password
echo -e "\nYour password is: $password"

流程控制

条件判断
if condition
then
    command 
    ...
fi

or

if condition
then
    command1
else
    command2
fi

or

if condition1
then
    command1
elif condition2
then
    command2
else
    command3
fi
for 循环
for var in item ... itemN
do
    command
    ...
done
while 循环
while condition
do
    command
done
until 循环

until 循环执行一系列命令直至条件为true时停止

until condition
do
    command
done
case
case value in
item1)
    command1
    ;;
item2)
    command2
    ;;
*)
    commandN
    ;;
esac
break

跳出所有循环

continue

跳出当前循环

常用命令

清空终端

clear

创建文件

touch file

创建目录

mkdir dir

查看文件内容

cat file

显示指定工作目录下的内容

ls [-alrtAFR] [name...]

参数说明

改名、移动文件或目录

mv [options] src destmv [options] src... dir

参数说明

复制文件或目录

cp [options] src destcp [options] src... dir

参数说明

删除文件或目录

rm [options] name

参数说明

请求

curl [options...] <url>

参数说明

curl -x "https.proxy=xxxxx:8080" -o main.html localhost/main.html
编辑文件

sed [-hnV] [-e<script>] [-f<script file>] [FILE]

参数说明

动作说明

替换标记

元字符集

sed -n '/\(versionCode\)/p'
sed -i "" "s/\">.*</\">${APP_NAME}</" ${FILE}
剪切字符串

如果指定 file 参数,则从文件的每一行剪切字节、字符和字段并将其写至标准输出

如果不指定 file 参数,则读取标准输入

必须指定 -b -c -f 之一

cut [-bn] [file]

cut [-c] [file]

cut [-df] [file]

参数说明

echo 'username=Jack' | cut -d "=" -f2
截取字符串
var="name=Jack"
echo ${var#*=}
上一篇下一篇

猜你喜欢

热点阅读