findコマンドを見ると、2つの違いが何であるか疑問に思います。
find -type f
そして
find ${1} -type f
それらはすべて同じ機能を果たしているようですが、その${1}
目的は何ですか?
答え1
これは${1}
findとは何の関係もなく、シェルパラメータです。
たとえば、2番目のfindコマンドがシェルスクリプト内で実行されると、次のようになりますtest.sh
。
#!/bin/bash
find ${1} -type f
その後、test.sh
使用すると
./test.sh cica
その後、コマンドラインcica
のシェルに置き換えられます。find
このfind
コマンドは
find cica -type f
cica
..また実行されます(したがって、現在のディレクトリではなくディレクトリ内のファイルを探します)。
bash
Ps 私たち全員は、、、、ls
のcp
マニュアルを一生に一度は読まなければなりませんstrace
。
答え2
@DopeGhotiが述べたように、$ {1}(または$ 1)はスクリプトまたは関数の最初のパラメータです。
質問したコードは、次の関数の一部であるようです。
#/bin/bash
function show {
find ${1} -type f -print
}
show #...find with current directory as starting point...
show mydir #...find using `mydir` as starting point...
つまり、引数なしで関数を呼び出すと、関数は空で${1}
実行find -type f...
されます。
答え3
${1}
(または$1
)はスクリプトまたは関数の最初のパラメータです。質問に呼び出すコマンドはおそらくスクリプトにあります。非常に基本的な例は次のとおりです。
#!/bin/bash
find "${1}" -type f
ファイルを実行可能ファイルとして保存してseek.sh
コマンドを実行すると、./seek.sh /home
実行されるコマンドはですfind "/home" -type f
。