如何访问用户主目录

时间:2019-09-13 23:50:11

标签: bash

我正在尝试编写一个bash脚本,该脚本需要两个不同的输入。一个是每行有一个用户的文件。例如,我当前正在测试的文件是: 彼得 罗杰 卡西 克洛伊 挡泥板 第二个输入是输出应通过管道传输到的位置。我们要对这两个输入执行的操作是转到每个用户的主目录,并查找5个文件(名为a,b,c,d,e)。然后,我们要计算每个用户拥有的这五个文件中的多少个。我知道正确的数字/输出应该是: 彼得3 罗杰1 卡西2 克洛伊5 挡泥板,0 但是,我不确定如何到达这里,因为我之前从未做过bash脚本编写,所以我不在这里。

我试图在while循环内使用for循环(如下所示)

while read line; do
        counter=0
        for i in a b c d e 
        do
 # /var/www/html/user_name/ is the home directory given to us in the problem
                if [-e/var/www/html/$line/$i];
                then
                        let counter = $counter + 1
                fi

        # would need to pipe $line,counter into $2 but not sure how 
        done
done 

如上所述,我只需要NAME,COUNT形式的输出,就需要将其通过管道输入到用户作为第二个参数输入的任何位置。

1 个答案:

答案 0 :(得分:0)

首先,我将建立目录路径。然后将lsegrepwc一起使用以获取计数。假设您的文件是test.txt,看起来像

while read line; do
    printf "%s,%s\n" $line $(ls /var/www/html/$line | egrep "^[a|b|c|d|e]$" | wc -l)
done < test.txt