博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell 备忘录【1】
阅读量:6008 次
发布时间:2019-06-20

本文共 2771 字,大约阅读时间需要 9 分钟。

hot3.png

1、比较

-eq       等于,如:if [ "$a" -eq "$b" ]-ne       不等于,如:if [ "$a" -ne "$b" ]-gt       大于,如:if [ "$a" -gt "$b" ]-ge       大于等于,如:if [ "$a" -ge "$b" ]-lt       小于,如:if [ "$a" -lt "$b" ]-le       小于等于,如:if [ "$a" -le "$b" ]-z       字符串为"null".就是长度为0. if [ -z "$a" ]-n       字符串不为"null" if [ -n "$a" ]

2、检测变量类型

# check value typefunction check(){        local a="$1"        printf "%d" "$a" &>/dev/null && echo "integer" && return        printf "%d" "$(echo $a|sed 's/^[+-]\?0\+//')" &>/dev/null && echo "integer" && return        printf "%f" "$a" &>/dev/null && echo "number" && return        [ ${#a} -eq 1 ] && echo "char" && return        echo "string"}

3、计算文件行数

max_count=$(wc -l ./host.list |awk '{ print $1 }')

4、for循环读取

for ip in $(head -n 20 ./host.list)do  echo $ip  ssh $ip 'hostname'done;

5、用密码自动登录

auto_login_ssh () {    expect -c "set timeout -1;                spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};                expect *assword:*;                send -- $1\r;                interact;";}auto_login_ssh password root@10.10.10.10

6、执行远程机器命令

fr=$(echo `ssh root@$ip "find / -name $1"`)     if [ "$fr" == "" ]        then          echo "Not Found "        else          echo "Found it: $fr"        fi

7、while遍历文件

while read linedo  echo $linedone < ./host.list

8、输入隐藏并验证密码,echo不换行

while [ -z $bigpass ] || [ "$bigpass" !=  "$bigpass2" ]do  if [ -n "$bigpass" ]  then    echo "Sorry, passwords do not match. pls retry"  fi  echo -n "Password:"  stty -echo  echo ""  read bigpass  stty echo  echo -n "Confirm password:"  stty -echo  read bigpass2  stty echo  echo ""done

9、输出本地格式日期

echo  "$(date +%Y%m%d%H%M%S).old"

10、算术运算

运算符号依旧是 + - * /不过使用时候要注意:r=`expr 4 + 5`r=$(( 4 + 5 ))r=$[ 4 + 5 ]let r=4 + 5r=`expr 4 \* 5`r=$(( 4 * 5 ))r=$[ 4 * 5 ]let r=4 * 5r=`expr 40 / 5`r=$(( 40 / 5 ))r=$[ 40 / 5 ]let r=40/5 乘幂 (如 2 的 3 次方)r=$(( 2 ** 3 ))r=$[ 2 ** 3 ]expr 沒有乘幂

11、输出彩色字符

#!/bin/shNORMAL=$(tput sgr0)GREEN=$(tput setaf 2; tput bold)YELLOW=$(tput setaf 3)RED=$(tput setaf 1)function red() {    echo -e "$RED$*$NORMAL"}function green() {    echo -e "$GREEN$*$NORMAL"}function yellow() {    echo -e "$YELLOW$*$NORMAL"}# To print successgreen "Task has been completed"# To print errorred "The configuration file does not exist"# To print warningyellow "You have to use higher version."

12、shell中的特殊变量

$0:当前脚本的文件名$num:num为从1开始的数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数$#:传入脚本的参数的个数$*:所有的位置参数(作为单个字符串)$@:所有的位置参数(每个都作为独立的字符串)。$?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if语句条件$$:当前shell进程的pid$!:后台运行的最后一个进程的pid$-:显示shell使用的当前选项$_:之前命令的最后一个参数

13、删除文件中某行

比如:在1.txt里有以下内容:HELLO=1NI=2WORLD=3I Love China.Love all....如果是要删除第三行:sed -i '3d' 1.txt如果删除以Love开头的行sed -i '/^Love/d' 1.txt删除包含Love的行sed -i '/Love/d' 1.txt

转载于:https://my.oschina.net/inchtek/blog/669357

你可能感兴趣的文章
OutLook The profile name you entered already exists.Enter a different profile name.
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
The Unique MST
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
申请Let’s Encrypt免费证书,给自己网站增加https访问
查看>>
javascript+html 实现隐藏 显示
查看>>
BZOJ 2120 数颜色
查看>>
正则表达式学习笔记——基础知识
查看>>
织梦如何实现二级栏目导航的仿制
查看>>
网上购物系统(Task010)——FormView编辑更新商品详细信息
查看>>
Struts2 技术全总结 (正在更新)
查看>>
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
《编程之美》——寻找发帖“水王”学习与扩展 转surymj博客
查看>>
Linux 虚拟机VMware安装失败,提示没有选择磁盘
查看>>
LeetCode-Permutations
查看>>
SpringMVC的REST风格的四种请求方式
查看>>
漫谈 Clustering (1): k-means(转)
查看>>
从零搭建mongo分片集群的简洁方法
查看>>