如何使用管道将输出传递到 xargs 命令并在运行 Finger 命令后更新用户的计划

如何使用管道将输出传递到 xargs 命令并在运行 Finger 命令后更新用户的计划

我是 Ubuntu 的新用户,正在处理一项任务,但我还没有找到任何方法来解决这个问题。以下是声明:

finger将用户帐户名作为参数。您可以使用该命令将用户名提供给 Fingerwhoami并将输出传输到xargs.xargs当然,争论的焦点是finger命令。

我已经完成了所有工作,并且知道如何使用该finger命令,但每当我使用时,find . file.sh | xargs finger {username} 我都没有得到所需的结果。基本上我想运行一个文件 .sh,然后在 .sh 文件之后该finger命令应该自动运行。就像这个截图一样在此输入图像描述

这是我的代码你可以看到这个

#!/bin/bash

echo -n "What is your name? ";
read  name;

echo -n "Are you a (S)tudent or a (P)rofessor? ";
read  s_or_p

if [ $s_or_p = "P" -o $s_or_p = "p" ]; then

    student_or_professor="professor"
    research_or_scholastic="research"

    echo -n "Where do you work? ";
    read  workplace_or_college

    echo  "What are your top 3 research interests? ";
    read  interest1
    read  interest2
    read  interest3

    echo  "$name is a $student_or_professor that works at $workplace_or_college." >> ~/.plan


else 
    if [ $s_or_p = "S" -o $s_or_p = "s" ]; then
    student_or_professor="student"
    research_or_scholastic="scholastic"

    echo -n "Where do you attend? ";
    read  worksat_or_attends

    echo  "What are your top 3 scholastic interests? ";
    read  interest1
    read  interest2
    read  interest3
    echo  "$name is a $student_or_professor that attends $worksat_or_attends." >> ~/.plan

    fi
fi

echo "$name's $research_or_scholastic interests include:" >> ~/.plan;
echo  $interest1 >> ~/.plan
echo  $interest2 >> ~/.plan
echo  $interest3 >> ~/.plan

echo "Running finger on your account..."
find . planner.sh | xargs finger linux

答案1

您的要求说明,

finger您可以使用该命令输入用户名whoami并将输出通过管道传输到xargs.xargs当然,争论的焦点是finger命令。

然后你自己说你使用了这个命令:find . file.sh | xargs finger {username}但是你没有得到所需的结果。

您设计的命令与需求中给出的标准不匹配。让我们来分解一下:

参数xargs是 [...]finger命令

好的,我们有了xargs finger。这需要输入,每行输入都finger通过附加到命令的末尾xargs

finger使用whoami命令输入用户名

我们不能这样做whoami | finger(我们可以,但它没有意义,因为finger不读取标准输入),但我们可以将 的输出应用whoami到命令末尾finger,如下所示:

whoami | xargs finger

这应该回答你问题的第一部分。当您使用它并找出第二部分中缺少的内容时,也许您想用新信息更新您的问题。

相关内容