Shell Step by Step (4) —— Cron & Echo

weixin_30924079發表於2020-04-04

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   顯示版本號資訊

熱門推薦

轉載於:https://www.cnblogs.com/yxwkf/p/5423835.html

相關文章