Advanced Bash-Shell Guide(Version 10) 学习笔记三
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,书上的脚本比较多 记录比较有用的脚本更好的方式检查命令行参数是否为数字40 # E_WRONGARGS=85 # Non-numerical argument (bad argument format
千家信息网最后更新 2026年11月02日Advanced Bash-Shell Guide(Version 10) 学习笔记三
书上的脚本比较多 记录比较有用的脚本
更好的方式检查命令行参数是否为数字
40 # E_WRONGARGS=85 # Non-numerical argument (bad argument format).41 #42 # case "$1" in43 # "" ) lines=50;;44 # *[!0-9]*) echo "Usage: `basename $0` lines-to-cleanup";45 # exit $E_WRONGARGS;;46 # * ) lines=$1;;47 # esac
更好的方式检查命令行参数数量是否正确
1 E_WRONG_ARGS=852 script_parameters="-a -h -m -z"3 # -a = all, -h = help, etc.45 if [ $# -ne $Number_of_expected_args ]6 then7 echo "Usage: `basename $0` $script_parameters"8 # `basename $0` is the script's filename.9 exit $E_WRONG_ARGS10 fi
更好的方式检查是否在正确的目录
63 # cd /var/log || {64 # echo "Cannot change to necessary directory." >&265 # exit $E_XCD;66 # }
备份源目录的文件并且在目标目录解压
(cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -)一个更加有效的脚本是cd source/directory# tar cf - . | (cd ../dest/directory; tar xpvf -)或cp -a /source/directory/* /dest/directory# cp -a /source/directory/* /source/directory/.[^.]* /dest/directory #这个复制源目录的隐藏文件
备份最近24小时内改变的文件
#!/bin/bashBACKUPFILE=backup-$(date +%m-%d-%Y)archive=${1:-$BACKUPFILE}# 如果在命令行中没有指定参数,就是用如下的格式# it will default to "backup-MM-DD-YYYY.tar.gz."tar cvf - `find . -mtime -1 -type f -print` > $archive.targzip $archive.tarecho "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
如果文件太多或者文件名有空白字符,上面的脚本可能出错
更好的备份方案 tar -r 追加到归档文件
# -------------------------------------------------------------------# find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"或# find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;exit 0
获取命令行参数的最后一个参数
args=$# # Number of args passed.lastarg=${!args}# Note: This is an *indirect reference* to $args ...# Or: lastarg=${!#}
${file#*/} :拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/} :拿掉最后一条 / 及其左边的字符串:my.file.txt
${file#*.} :拿掉第一个 . 及其左边的字符串:file.txt
${file##*.} :拿掉最后一个 . 及其左边的字符串:txt
${file%/*} :拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*} :拿掉第一条 / 及其右边的字符串:(空值)
${file%.*} :拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*} :拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
字符
字符串
文件
参数
右边
命令
脚本
备份
方式
检查
源目录
目录
有效
小时
就是
数字
数量
文件名
方案
有用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技
有格互联网科技
广州淘业互联网络科技
广州万易互联网科技有限公司
互联网科技公司华为
金融科技还是互联网
互联网科技股票
互联网 新科技
中国互联网金融科技基金
联恩商钥互联网科技有限公司
宁夏众和广鑫互联网科技有限公司
上海宁丞科技互联网
杭州壁岐互联网科技有限公司
呼和浩特新华互联网科技学院
长沙茂晟互联网科技有限公司
2021互联网科技公司排名
梅州GM互联网络科技有限公司
图游互联网科技
互联网界的黑科技
互联网科技企业文化
北京路客互联网科技有限公司
科技平台互联网
北京互联网科技
互联网科技小额贷款
内蒙古九一互联网科技
互联网在线教育科技创业
伊宁互联网科技做什么的
科技互联网的核心竞争力
互联网第三次科技革命特征
互联网时代科技型公司的机会