6.指令碼定時任務
# Example of job definition:
# .------------------------- minute (0 - 59)
# | .--------------------- hour (0 - 23)
# | | .----------------- day of month (1 - 31)
# | | | .------------- month (1 - 12)
# | | | | .--------- day of week (0 - 6)
# | | | | |
# * * * * * user-name command to be executed
7.檢視當前使用者的UID
root@kallen:/usr/data/kallendb_backup# ps -ef | grep UID
UID PID PPID C STIME TTY TIME CMD
root 2872 2384 0 09:43 pts/2 00:00:00 grep --color=auto UID
8.用Shell模擬一個進度條
#! /bin/bash
#
# Progress Bar
# Print # to view the process bar
# create variable
b=''
# for loop
for ((i=0;$i<=100;i+=2))
do
printf "Progress:[%-50s]%d%%\r" $b $i
sleep 0.1
b=#$b
done
echo
在Shell指令碼的編寫應用中,有時候會須要用到圖形介面的案例,比方預設cp複製檔案為靜默模式。無法看到拷貝的進度與百分比。
而dialog正是為Shell提供圖形介面的工具,該工具能夠為Shell指令碼提供各式各樣的圖形介面,今天為大家介紹的是dialog提供的進度條圖形功能。
dialog指令能夠單獨執行。格式為
dialog --title "Copy" --gauge "files" 6 70 10
備註:
title表示圖形進度條的標題。
gauge為正文內容。進度條高度為6,寬度70。顯示執行進度為10%
for i in {1..100} ;
do sleep 1;
echo $i | dialog --title 'Copy' --gauge 'I am busy!' 10 70 0;
done
以下案例中通過統計原始檔個數。再據此計算出複製檔案的百分比,在Shell中提供進度的顯示。
該指令碼有兩個引數。第一個引數為原始檔路徑,第二個引數為目標路徑。
假設您的應用案例不同能夠據此稍作改動就可以使用。
#!/bin/bash
# Description: A shell script to copy parameter1 to
# parameter2 and Display a progress bar
# Author:Jacob
# Version:0.1 beta
# Read the parameter for copy,$1 is source dir
# and $2 is destination dir.
dir=$1/*
des=$2
# Test the destination dirctory whether exists
[ -d $des ] && echo "Dir Exist" && exit 1
# Create the destination dirctory
mkdir $des
# Set counter, it will auto increase to the number of
# source file.
i=0
# Count the number of source file
n=`echo $1/* |wc -w`
for file in `echo $dir`
do
# Calculate progress
percent=$((100*(++i)/n))
cat <<EOF
XXX
$percent
Copying file $file ...
XXX
EOF
/bin/cp -r $file $des &>/dev/null
done | dialog --title "Copy" --gauge "files" 6 70
clear
效果如圖:
9.Echo輸出
功能說明: 顯示文字
語 法:
echo [ -ne ] [ 字串 ] 或
echo [ --help ] [--version ]
引數:
-n 不要在最後自己主動換行
-e 若字串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出;
\b 刪除前一個字元;
\f 換行但游標仍舊停留在原來的位置;
\r 游標移至行首。但不換行;
\t 插入tab。
\v 與\f同樣;
\nnn 插入nnn(八進位制)所代表的ASCII字元。
--help 顯示幫助
--version 顯示版本號資訊