题
我对此有问题。它不断返回我,而不是目录,但肯定是
#!/usr/local/bin/bash
DIR=$1
if [ -d "$DIR" ]; then
ls -1Apl /home/$DIR | grep -v /\$
else
echo "not a directory"
fi
还有一件事,我需要一点提示。我必须在给定目录中列出给定用户的文件,在该目录中我将用户和目录作为参数同时获得。请提出建议。
解决方案
你在 /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}{}'
其他提示
您没有测试与尝试列出相同目录的存在 - 也许您是说 -d "/home/$DIR"
?还是根据您的要求,您有两个参数吗?
user="$1"
dir="$2"
# and then examine "/home/$user/$dir"
不隶属于 StackOverflow