随笔分类 - shell脚本实战
摘要:重点:如何生成随机数? 1. num=$(date +%s%N) 2. num=$RANDOM 3. num=$(head -200 /dev/urandom | cksum | cut -f1 -d" ") 4. num=$(cat /proc/sys/kernel/random/uuid| ck
阅读全文
摘要:sourcing 功能 使用source、点号(.) 或 exec读入脚本,可使脚本成为了主运行进程 脚本中的命令就好像是直接在当前shell中输入的一样(父shell) 提取前面涉及的函数及全局变量或数组,将其合并到一个文件library.sh中 View Code #!/usr/bin/env
阅读全文
摘要:#!/bin/bash # ANSI color initializeANSI() { esc="\e" # 同'\033' # 前景色: blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m"; yellowf="${esc}[33m
阅读全文
摘要:#!/bin/bash # FILENAME:filelock # 默认重试次数 retries="10" # 默认操作 action="lock" # 用于锁文件的空命令 nullcmd="'which true'" # 设置选项 while getopts "lur:" opt; do case
阅读全文
摘要:使用一个包装器(wrapper),让bc用起来更加顺手。 #!/usr/bin/env bash # 设置指定/默认精度 if [ "$1" = "-p" ]; then precision=$2 shift 2 else # 默认精度 precision=2 fi bc -q << EOF sca
阅读全文
摘要:1、大多数Unix和GNU/Linux实现所包含的echo命令选项-n,禁止输出内容的末尾出现换行符 echo -n "hello "; echo "world" # 输出: hello world 2、但有些使用\c作为一个特殊的嵌入式字符来克服默认行为,有些则无论如何都坚持加入尾部换行符,此时可
阅读全文
摘要:验证日期是否有效,主要考虑闰年的情况,闰年的2月份有29天 闰年规则: 1、普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年) 2、世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年) 本案例用将会调用到
阅读全文
摘要:基本思路: 1、检查输入值是否包含小数点"." 2、包含小数点则对小数点的整数部分和小数部分分开测试 3、确保小数点两边都是有效的整数,且没有多余的负号(针对validint进行补充判断) 4、最后检查是否输入值只是一个负号和小数点 5、其他:待增强 注:本脚本不接受科学计数法:1.24e4 #!/
阅读全文
摘要:验证整数输入,注意整数包含正负整数。 1 #!/usr/bin/env bash 2 3 validint(){ 4 number=$1 5 min=$2 6 max=$3 7 8 # 空值检测 9 if [ -z $number ]; then 10 echo "You didn't input
阅读全文
摘要:将给定的数字以逗号分隔的形式显示出来 代码: #!/bin/bash # FILENAME: nicenum.sh # 可接受两个选项:DD(decimal pointa,小数分隔符) # 和TD(thousands delimiter,千位分隔符) # niceNumber() { # 检测输入数
阅读全文
摘要:输入要求: 1. 月份为英文名称或1至12的数字表示,如 January 或 1 2. 年份由4位数组成,如 2020 格式化为: 3个字母的月份名称(第一个字符大写)、天数及4位数的年份组成 #!/bin/bash # numMonth(){ # 将月份规范成3个字母,首字母大写 case $1
阅读全文
摘要:确保输入内容仅限于字母和数字 #!/bin/bash # validAlpNum.sh # 验证输入,仅限字母数字 validAlphaNum() { validChar="$(echo $1 | sed -e 's/[^[:alnum:]]//g')" if [ "$validChar" = "$
阅读全文
摘要:验证指定程序是否有效或者能否在PATH目录列表中找到 1 #!/bin/bash 2 # 验证指定程序是否有效或者能否在PATH目录列表中找到 3 4 inpath() { 5 cmd=$1 6 ourpath=$2 7 result=1 8 oldIFS=$IFS 9 IFS=":" 10 11
阅读全文

浙公网安备 33010602011771号