shell编程实例B01

1、查看用户、密码信息

su - username
用于完全切换用户,最好不要用su username

$USER:当前用户名
$UID:当前用户ID

cat /etc/group:查看所有用户组信息
cat /etc/passwd:查看所有用户密码信息

passwd -S username:查看登录账号密码信息(仅限root用户执行)

2、字符串截取及切割

子串截取的三种方法:


(1) ${var_name:start:length}     / 从0开始计位数!!!

phone='15170016044'       要求提取7001
echo${#phone}        显示11      /  加#号统计这个变量有多少位
echo${phone:0:4}  = echo${phone::4}        / 起始位置为0可以省略,4是截取长度
echo${phone:3:4}   显示 7001  

(2) expr substr "$phone" start  length     /  变量的引号可要可不要

expr substr "$phone"   4  4       / 显示7001 

(3) echo $phone | cut -b  start-end      /  从1开始计位数!!!

echo $phone | cut -b   4-7          / 显示7001 
echo $phone | cut -c   4-7          / 显示7001 
echo $phone | cut -b   4,5,6,7        / 显示7001
echo $phone | cut -c   4,5,6,7        / 显示7001


例如:
#!/bin/bash

ID='0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM'

echo  ${#ID}     /  62
num=$[RANDOM%62]     /  0-61     /取的值不能超过ID最高位数

echo  ${ID:$num:1}          
num=$[RANDOM%62+1]        /  1-62
echo  $ID  | cut -b  $num
expr  substr  “$ID”   $num   1

3、子串替换(详情见链接)

4、变量初始值处理

1)只取值,${var:-word}

若变量var已存在且非Null,则返回 $var 的值;否则返回字串“word”,原变量var的值不受影响。


2)取值+赋值,${var:=word}

若变量var已存在且非Null,则返回 $var 的值,原变量值不变;否则返回字串“word”,并将此字串赋值给变量 var。

参考链接:

https://www.cnblogs.com/minegi/p/12631674.html

https://www.cnblogs.com/selectztl/p/9523151.html

https://blog.csdn.net/qq_36441027/article/details/80100615

原文地址:https://www.cnblogs.com/BASE64/p/13399936.html