Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
shell脚本中的循环passwd_Shell_Loops_Passwd - Fatal编程技术网

shell脚本中的循环passwd

shell脚本中的循环passwd,shell,loops,passwd,Shell,Loops,Passwd,如何使用shell脚本为服务器用户创建循环 我写了这段代码 #!/bin/bash b=`awk -F: '{ print $1 }' /etc/passwd | sort` for $b in /home/$b/ /home/$b/ /home/$b/ echo "$b" done 我想循环所有用户并显示其 用户喜欢的文件 /etc/passwd 比如: root,admin,cpanel,adm,mysql,user1,user2,user3,user4,user5 我想要输出: /

如何使用shell脚本为服务器用户创建循环 我写了这段代码

#!/bin/bash
b=`awk -F: '{ print $1 }' /etc/passwd | sort`
for $b in /home/$b/ /home/$b/ /home/$b/
echo "$b"
done
我想循环所有用户并显示其

用户喜欢的文件

/etc/passwd 
比如:

root,admin,cpanel,adm,mysql,user1,user2,user3,user4,user5
我想要输出:

/home/adm
/home/root
/home/admin
/home/mysql
/home/user1
/home/user2

感谢您在每个用户名前打印
/home/

$ awk -F: ' { print "/home/"$1 }' /etc/passwd | sort
/home/avahi
/home/backup
/home/bin
/home/clamav
/home/colord
/home/daemon
[...snip...]
如果您想要实际的主目录,可以在字段6中找到它们:

$ awk -F: ' { print $6 }' /etc/passwd | sort
/dev/null
/home/john1024
/nonexistent
/root
您还可以使用
cut
访问第六个字段:

cut -d: -f6 /etc/passwd | sort
打印多个目录 根据评论中的修订问题:

$ awk -F: ' { p="/home/"$1; printf "%s\n%s\n%s\n",p"/www",p"/ftp",p"/etc" }' /etc/passwd | sort
/home/avahi/etc
/home/avahi/ftp
/home/avahi/www
/home/backup/etc
/home/backup/ftp
/home/backup/www
[...snip...]

要在每个用户名之前打印
/home/

$ awk -F: ' { print "/home/"$1 }' /etc/passwd | sort
/home/avahi
/home/backup
/home/bin
/home/clamav
/home/colord
/home/daemon
[...snip...]
如果您想要实际的主目录,可以在字段6中找到它们:

$ awk -F: ' { print $6 }' /etc/passwd | sort
/dev/null
/home/john1024
/nonexistent
/root
您还可以使用
cut
访问第六个字段:

cut -d: -f6 /etc/passwd | sort
打印多个目录 根据评论中的修订问题:

$ awk -F: ' { p="/home/"$1; printf "%s\n%s\n%s\n",p"/www",p"/ftp",p"/etc" }' /etc/passwd | sort
/home/avahi/etc
/home/avahi/ftp
/home/avahi/www
/home/backup/etc
/home/backup/ftp
/home/backup/www
[...snip...]

您的目标是查找所有主目录还是打印
/home/username
?例如,在标准unix中,root的主目录通常是
/root
,而不是
/home/root
。您的目标是查找所有主目录还是打印
/home/username
?例如,在标准unix中,root的主目录通常是
/root
,不是
/home/root
。谢谢,先生,非常好,但是我想同时测试并循环所有路径中的每个用户/home/user1/www/home/user1/ftp/home/user1/etc/home/user2/ftp/home/user2/etc/home/user3/www/home/user3/ftp/home/user3/etc我怎么做?及thanks@saba我更新了答案,为每个用户打印了多个目录。非常感谢john先生。。你很酷。。谢谢向您致意,感谢stackoverflow.com sir john我有一个问题,请检查我的问题谢谢,先生,很好,但我想同时测试并循环所有这些路径中的每个用户/home/user1/www/home/user1/ftp/home/user1/etc/home/user2/ftp/home/user2/etc/home/user3/www/home/user3/ftp/home/user3/etc我该怎么做?及thanks@saba我更新了答案,为每个用户打印了多个目录。非常感谢john先生。。你很酷。。谢谢约翰先生,我有一个问题,请检查我的问题