shell 腳本之輪詢文件

如何查找當前目錄下所有件呢?想了一想,用腳本比較好。所以就寫了一個shell腳本,在此做一個記錄。

code

#! /bin/bash

function read_file() {
        for file in `ls $1` #注意此處這是兩個反引號,表示運行系統命令,下面文件處理的地方也需要加``或者用$()
        do
                if [ -d $1"/"$file ]
                then
                        read_file $1"/"$file
                else
                        `echo $1"/"$file` #在此處可以改成文件處理. Eg: $(dos2unix $1"/"$file)
                fi
        done
}

read_file $1

$( )與``

在bash中,$( )與(反引號)都是用來作命令替換的。
  命令替換與變量替換差不多,都是用來重組命令行的,先完成引號裏的命令行,然後將其結果替換出來,再重組成新的命令行。
在操作上,這兩者都是達到相應的效果,各有利弊:

  1. ``很容易與’'搞混亂,而$( )比較直觀。
  2. $( )的可移植性不如``反引號。

$1

Shell腳本中00、?、!!、*、KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲、@

  1. $$ :Shell本身的PID
  2. $! :Shell最後運行的後臺Process的PID
  3. $? :最後運行的命令的結束代碼(返回值)
  4. $- :使用Set命令設定的Flag一覽
  5. "* :所有參數列表。如"*“用「”」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
  6. @"@ :所有參數列表。如"@“用「”」括起來的情況、以"$1" “2""2" … "n” 的形式輸出所有參數。
  7. $# :添加到Shell的參數個數
  8. $0 :Shell本身的文件名
  9. $n: 添加到Shell的各參數值。$1是第1參數、$2是第2參數…。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章