shell一 基本使用、变量操作和正则表达式基础
一、shell热身
①注释:单行注释,由#开始至行尾
②基本数据类型:只有字符串。
echo "shine" 20034 # 一个空格,两个变量 echo "shine" "20034" # 一个空格,两个变量 echo "shine 20034" # 三个空格,一个变量 echo "\t\n";
双引号的作用:输出多个空格,但不能包含!感叹号。 echo可以输出多个字符串。
③多命令组合 ; && ||
echo shine; echo 20034。 &&:上一个命令正常退出才执行下一个,||错误退出才执行下一个。
④prinf格式化输出(比echo高级点,类似c语言)
eg: printf "%-5s\t%10s\t%4.2f\n" 1 Sarath 80.34
⑤shell脚本(可以sh bash多种程序解析)
#!/bin/bash echo "hello, shine 20034!" echo "myexpr is `cat test.txt`" exit 0
创建完后执行① chmod +x ./test.sh; ./test.sh ② /bin/sh test.sh 这类似/bin/python test.py
二、shell变量
1、普通变量:只在当前用户脚本/shell窗口中有效,声明与使用eg: 释放变量unset var
var=shine echo xu$var "xu$var" 'xu$var' # 输出 xushine xushine xu$var
①=等号左右不能有空格 ②两种方式$var和${var} 。
2、系统变量:全局共享且任一用户登录时都执行/etc/profile
声明 export var=shine; export var; declare -x var
3、其他变量:创建脚本并执行
#!/bin/bash echo '$?:'$? # 上一条代码执行的exit回传码,0表示正常执行 echo '$$:'$$ echo '$!:'$! echo '$#:'$# # 统计参数个数 echo '$@:'$@ # 所有参数 echo '$*:'$* # 所有参数做一个整体参数 echo '$0:'$0 # 脚本名称 echo '$1:'$1 # 位置参数 echo '$2:'$2 echo '$3:'$3
(base) root@xu:/home/xu/work# ./var.sh shine 20034 a
$?:0
$$:27742
$!:
$#:3
$@:shine 20034 a
$*:shine 20034 a
$0:./var.sh
$1:shine
$2:20034
$3:a
4、变量的切分、提取和替换
①切分
root@xu:/home/xu# var="Linux.docx.jpg" root@xu:/home/xu# echo "${var%%.*} ${var%.*} ${var##*.} ${var#*.}" Linux Linux.docx jpg docx.jpg
${var%%.*} 两个%是贪婪删除,%.*表示删除.右边的,#*.表示删除.左边。
②提取和替换(可以用替换实现删除子串)
root@xu:/home/xu# var=shine20034 root@xu:/home/xu# echo "${var:0:3} ${var:4:3} ${var/0/X} ${var//0/X}" shi e20 shine2X034 shine2XX34
${var:0:3} 0是index,3是count, 从index开始; ${var/0/X} 从左往右把0替换成X, //表示贪婪替换; 删除所有0: var=${var//0/}
三、正则表达式

2021-12-08 21:29:35

浙公网安备 33010602011771号