我遇到这个问题。 它不断地归还我,而不是目录,但肯定是
#!/usr/local/bin/bash
DIR=$1
if [ -d "$DIR" ]; then
ls -1Apl /home/$DIR | grep -v /\$
else
echo "not a directory"
fi
还有一件事,我需要一点提示。我必须列出给定目录中给定用户的文件,其中我将用户和目录作为参数。 请提出建议。
答案 0 :(得分:1)
运行此文件时,您是否在/home
目录中?如果没有,您可能希望将其更改为:
if [ -d "/home/$DIR" ]; then
匹配ls
命令。这假设您使用类似myscript pax
的方式运行它来检查/home/pax
目录,这似乎就是这种情况。
如果您只想列出特定用户拥有的那些文件,您可以使用awk
仅打印第3列设置为所需值($usrnm
)的文件,类似于:
ls -1Apl /home/$DIR | grep -v /\$ | awk -v user=${usrnm} '$3==user{print}{}'
答案 1 :(得分:1)
您没有测试是否存在与您尝试列出的目录相同的目录 - 也许您的意思是-d "/home/$DIR"
?或者根据您的要求,您有两个参数吗?
user="$1"
dir="$2"
# and then examine "/home/$user/$dir"