您好,登錄后才能下訂單哦!
書上的腳本比較多 記錄比較有用的腳本
更好的方式檢查命令行參數是否為數字
40 # E_WRONGARGS=85 # Non-numerical argument (bad argument format). 41 # 42 # case "$1" in 43 # "" ) 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=85 2 script_parameters="-a -h -m -z" 3 # -a = all, -h = help, etc. 4 5 if [ $# -ne $Number_of_expected_args ] 6 then 7 echo "Usage: `basename $0` $script_parameters" 8 # `basename $0` is the script's filename. 9 exit $E_WRONG_ARGS 10 fi
更好的方式檢查是否在正確的目錄
63 # cd /var/log || { 64 # echo "Cannot change to necessary directory." >&2 65 # 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/bash BACKUPFILE=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.tar gzip $archive.tar echo "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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。