2016-12-26 16 views
-3

bashスクリプトでは、これは文if[ -d "/"$file ]を説明することができますので、ディレクトリであることを確認しますか?ファイルが存在するディレクトリである(男性:ここ$filels /if条件を使用してLinuxでファイルをテストする

+0

は、あなたの質問にスクリプトを追加します。 – Cyrus

+1

'if'と' [''の間のスペースはオプションではありません。 – choroba

+0

そのようなことを理解する最も良い方法は、[bashマニュアル](https://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html) – kaylum

答えて

0
if [ -d "/"$file ] 

を格納する変数は

test -d "/"$file 
if (exit $?) 

又は

if $(test -d "/"$file) 

と-d FILEの平均値をテストと同じですテスト)。

あなたが持っている内部test.cのため:

case 'd':     /* File is a directory? */ 
    return (sh_stat (arg, &stat_buf) == 0 && (S_ISDIR (stat_buf.st_mode))); 


sh_stat  to have stat_buf of the FILE, if exist. 
S_ISDIR  mask on stat_buf to know if it is a directory. 

if文で二重引用符理由:

to concat string "A" and "B" you can write "A""B" 
to concat "/" and $file you can write "/"$file , "/"${file}, "/$file" or "/${file}" 
+0

を読むことで、二重引用符if文で? – chandu

+0

'test'もBashビルトインで、'/bin/test'の代わりに実行されるので、この場合の関連するソースはBash自身であると私は言うでしょう。 –

+0

[-d $ file]が[-d "/" $ file]と同じ場合は? – chandu

関連する問題