Linux Shell脚本回显问题

Linux Shell脚本回显问题,linux,bash,shell,echo,Linux,Bash,Shell,Echo,在shell脚本的这个if条件中,我希望打印用户全名+存在(如果文件..../pub_key.asc已找到),或者如果未找到提到的文件,则打印不存在 for file in $FILES do if [ -f /home/$file/public_html/pub_key.asc ]; then echo $(cat /home/$file/etc/passwd | head -n | cut -d: -f1) : Exists else echo $(cat /home/

在shell脚本的这个if条件中,我希望打印用户全名+存在(如果文件..../pub_key.asc已找到),或者如果未找到提到的文件,则打印不存在

for file in $FILES
do
if [ -f  /home/$file/public_html/pub_key.asc ]; then
     echo $(cat /home/$file/etc/passwd | head -n | cut -d: -f1) : Exists
else
    echo  $(cat /home/$file/etc/passwd | head -n | cut -d: -f1) : Not exists!
fi
done
但我得到了错误,因为在if..条件下第一个echo出现了问题。
有人能告诉我我在echo声明中做了什么吗?如何修复?感谢您的建议。:)

由于head-n命令,您可能会收到一个错误


head-n后面必须跟一个数字,例如head-n1或head-1

由于head-n命令,您可能会遇到错误


head-n后面必须跟一个数字,例如head-n1或head-1

您似乎正在使用
[…]
代替命令替换
$(…)
;不清楚为什么。我用大括号做了这个更改,比如$(…),但仍然存在相同的问题。到底是什么错误?
FILES
的值是什么?为什么用户的主目录中会有一个文件
etc/passwd
?您确定不想要类似
grep“$file”/etc/passwd
?您似乎在使用
[…]
来代替命令替换
$(…)
;不清楚为什么。我用大括号做了这个更改,比如$(…),但仍然存在相同的问题。到底是什么错误?
FILES
的值是什么?为什么用户的主目录中会有一个文件
etc/passwd
?您确定不想要类似
grep“$file”/etc/passwd
的内容吗?我更改了它,但现在它会出现另一条错误消息,它会针对每个显示的用户显示。剪切:/home/240379/etc/passwd:Ingen slik fil eller filkatalog…(无此类文件或文件夹)grep:1:Ingen slik fil eller filkatalog…(非此类文件或文件夹)剪切:/home/240380/etc/passwd:Ingen slik fil eller filkatalog…(无此类文件或文件夹)grep:1:Ingen slik filkatalog eller filkatalog…(无此类文件或文件夹)ok,因此文件/home/240379/etc/passwd不存在。。也许您需要的信息在/etc/passwd文件中,正如@Barmari已经提到的那样,它改变了它,但是现在它出现了另一条错误消息,它为每个显示的用户显示。剪切:/home/240379/etc/passwd:Ingen slik fil eller filkatalog…(无此类文件或文件夹)grep:1:Ingen slik fil eller filkatalog…(非此类文件或文件夹)剪切:/home/240380/etc/passwd:Ingen slik fil eller filkatalog…(无此类文件或文件夹)grep:1:Ingen slik filkatalog eller filkatalog…(无此类文件或文件夹)ok,因此文件/home/240379/etc/passwd不存在。。也许您需要的信息在/etc/passwd文件中,正如@Barmar已经提到的那样