【发布时间】:2012-03-07 06:00:42
【问题描述】:
我想使用 shell 脚本列出所有目录。我正在使用以下代码:
DIR="$1"
if [ $# -ne 1 ]
then
echo "Usage: $0 {dir-name}"
exit 1
fi
cd "$DIR"
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for user in $( ls -d */)
do
for dirs in $( ls -d $PWD/$user*)
do
echo $PWD/$user/$dirs;
done
done
IFS=$SAVEIFS
如果该目录上没有任何空格,它对我有用,否则它将为每个空格拆分输出。我得到以下输出:
abhinaba@abhinaba-desktop:~/software$ sh test.sh /media/2C44138344134F48/RB1
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/VB*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/DLI*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/3001/*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/VB*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/DLI*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/3002/*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/VB*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/DLI*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/3003/*: No such file or directory
【问题讨论】:
-
你能否更准确地回答这个问题:你只需要上面有空格的目录吗?或者您是否需要在所有目录上“做你的事情”,包括名称中带有空格的目录?
-
您需要使用 BASH "bash test.sh /media/2C44138344134F48/RB1" 运行脚本
-
我需要列出所有目录,无论是否有空格。
-
我明白,但标题中的问题不清楚。我已经更新了我的答案。通过“sh test.sh ...”运行我遇到了同样的错误