Bash权限被拒绝

时间:2014-04-28 22:17:18

标签: linux bash shell command-line

我是bash的初学者,我不明白为什么

#! /bin/sh
if ! [ -d $1 ]; then echo This is not a directory && exit 1; fi

for file in `ls $1`; 
do 
    if [ -f `$1/$file` ]; then
        echo $file is a file
    elif [ -d $file ]; then
        echo $file is a directory
    fi
done

[ -f $ 1 / $ file ]

上拒绝了我的权限

1 个答案:

答案 0 :(得分:1)

这是因为你已经在&#34中用反引号(``)包围了路径;如果"线。这告诉shell执行文件(毫无疑问,文件夹中的许多文件都不可执行 - 因此错误)。切换到普通报价。

顺便说一句,使用反引号来捕获" ls"在" for"循环是一个坏主意 - 它将破坏包含空格的文件名(这是完全合法的)。