千家信息网

Advanced Bash-Shell Guide(Version 10) 学习笔记三

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,书上的脚本比较多 记录比较有用的脚本更好的方式检查命令行参数是否为数字40 # E_WRONGARGS=85 # Non-numerical argument (bad argument format
千家信息网最后更新 2025年01月31日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安全错误 数据库的锁怎样保障安全 网络技术报考专业及分数线 通用型s3服务器 websci数据库价格 数据库交互测试 武汉弈速腾网络技术有限公司 网络技术与网络科技有啥区别 怎么判断数据库是否创建正确 山东科软网络技术有限公司 解析收费站的收费网络安全 江油论坛网络技术普工 高等数学答案软件开发 数据库关系运算除 江苏大学数据库期末考试 商城数据库建表 个人做个小程序服务器多少钱 网络安全从我做起文字怎么写 软件开发的核心技术 我的世界寒假必玩生存服务器推荐 安徽服务器专用机柜云服务器 网安网络技术有限公司待遇 一梦江湖电脑服务器和手机不一样 山西潮流软件开发设施有哪些 以色列网络安全如何 山东设计少儿编程平台软件开发 网络安全宣传宣传片 男人学习网络技术好吗 服务器虚拟内存设置 违反网络安全法拒不改正 服务器同步出现问题 网络安全员自我救赎
0