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数据库价格
数据库交互测试
武汉弈速腾网络技术有限公司
网络技术与网络科技有啥区别
怎么判断数据库是否创建正确
山东科软网络技术有限公司
解析收费站的收费网络安全
江油论坛网络技术普工
高等数学答案软件开发
数据库关系运算除
江苏大学数据库期末考试
商城数据库建表
个人做个小程序服务器多少钱
网络安全从我做起文字怎么写
软件开发的核心技术
我的世界寒假必玩生存服务器推荐
安徽服务器专用机柜云服务器
网安网络技术有限公司待遇
一梦江湖电脑服务器和手机不一样
山西潮流软件开发设施有哪些
以色列网络安全如何
山东设计少儿编程平台软件开发
网络安全宣传宣传片
男人学习网络技术好吗
服务器虚拟内存设置
违反网络安全法拒不改正
服务器同步出现问题
网络安全员自我救赎