如何查找當前目錄下所有件呢?想了一想,用腳本比較好。所以就寫了一個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
Shell腳本中?、*、KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲、@
- $$ :Shell本身的PID
- $! :Shell最後運行的後臺Process的PID
- $? :最後運行的命令的結束代碼(返回值)
- $- :使用Set命令設定的Flag一覽
- *“用「”」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
- @“用「”」括起來的情況、以"$1" “n” 的形式輸出所有參數。
- $# :添加到Shell的參數個數
- $0 :Shell本身的文件名
- $n: 添加到Shell的各參數值。$1是第1參數、$2是第2參數…。