Advanced Bash-Shell Guide(Version 10) 学习笔记三
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,书上的脚本比较多 记录比较有用的脚本更好的方式检查命令行参数是否为数字40 # E_WRONGARGS=85 # Non-numerical argument (bad argument format
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
数据库表单数据大于0
通用服务器配置
知网服务器已停止响应
荷兰网络安全吗
数据库表如何添加字段
危害网络安全罪向哪求救
连云港网络安全工程师招聘
智游网络技术学院
主席 讲话 网络安全
数据库应用技术知识点总结
互联网科技怎么发展
无锡优势网络技术质量服务
计算机网络技术求职意向
sql数据库管理工具如何安装
CDN加速服务器免费下载
信通公司网络安全培训记录
检查数据库连接错误
亚马逊物理服务器价格
空间数据库哪几部分组成
中科曙光网络安全落子武汉
缓存服务器硬盘选购
网络安全之信息内容安全
汽车金融软件开发合同范本
初一的网络安全靠大家手抄报
数据库技术国内现状
服务器无法登录服务器失败
代码连接数据库
一般配置数据库的代码在哪
CDN加速服务器免费下载
苹果服务器一直无法连接