shell之常用的一些命令

前言

  自我感觉学习shell要常用`man`,`--help`这样挺方便去写的,光靠熟练远远不够的

#!/bin/bash
wget命令
我用到最多就是请求http网站啦,一般很少加参数
set -x
url(){
timeout=6
fail=0
success=0
while true
do
       	wget --timeout=$timeout --tries=1 https://www.cnblogs.com/zqxFly/ -q -o /dev/null
        if [ $? -ne 0]
	then
	        let fail=fail+1
        else
                let success+=1
        fi
        if [ $success -ge 1]
	then
                echo success
                exit 0
        fi
        if [ $fails -ge 2]
	then
                ttry="sys is dowm"
                echo $ttry|tee|mail -s "https://www.cnblogs.com/xxx"
                exit 2
        fi
done
}
url

wget 接http link

expr 命令是一个手工命令行计数器
1.结合match进行整数判断
if [[`expr match "$1" "[0-9] [0-9]*$"` == 0 ] ]
then
echo "$1 is not a num"
else
echo "$1 is a num"
fi
2.判断字符
expr $1 + 1 >/dev/null 2>&1
[ $? -eq 0 ] &&echo int || echo chars
while true
do
	read -p "hello adol":a
	expr $a + 0 >/dev/null 2>&1
	[ $? -eq 0 ] && echo int || echo chars
done
3.整数运算[ $# -ne 2 ] &&{
echo $"usage $0 num1 num2"
exit 1
}
a=$1
b=$2
expr $a + $b + 110 &>/dev/null
if [ $? -ne 0 ]
then
	echo "you must two nums"
	exit
fi
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"
echo "a%b=$(($a%$b))"

bc 命令是任意精度计算器语言
bc(选项)(参数)
通过管道符
echo "1.11+2" | bc
直接输入bc

read命令用于从标准输入读取数值

     read -p "name:"
     echo "shuchu $name"
    if read -t 5 -p "ipnut website name:"
    then
              echo "输入网站名 $website"
    else
              echo "\n超时了"
    fi
    exit 0

参数说明:
  • -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
  • -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
  • -p 后面跟提示信息,即在输入前打印提示信息。
  • -e 在输入的时候可以使用命令补全功能。
  • -n 后跟一个数字,定义输入文本的长度,很实用。
  • -r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
  • -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
  • -t 后面跟秒数,定义输入字符的等待时间。
  • -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
原文地址:https://www.cnblogs.com/zqxFly/p/15775694.html