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
test.sh

 创建完后执行① 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
var.sh

(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

posted @ 2021-12-01 20:48  shines87  阅读(298)  评论(0)    收藏  举报