相关疑难解决方法(0)

通过xargs调用多个命令

cat a.txt | xargs -I % echo %
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,xargs echo %用作命令参数.但在某些情况下,我需要多个命令来处理参数而不是一个.例如:

cat a.txt | xargs -I % {command1; command2; ... }
Run Code Online (Sandbox Code Playgroud)

但是xargs不接受这种形式.我知道的一个解决方案是我可以定义一个函数来包装命令,但它不是一个管道,我不喜欢它.还有其他解决方案吗?

bash xargs

286
推荐指数
9
解决办法
15万
查看次数

无用的猫吗?

这可能是许多常见问题解答 - 而不是使用:

cat file | command
Run Code Online (Sandbox Code Playgroud)

(这被称为无用的猫),正确的方式应该是:

command < file
Run Code Online (Sandbox Code Playgroud)

在第二,"正确"的方式 - 操作系统不必产生额外的过程.
尽管知道这一点,我继续使用无用的猫有两个原因.

  1. 更美观 - 我喜欢数据仅从左到右均匀移动.而且它更容易更换cat别的东西(gzcat,echo,...),添加第二个文件或插入新的过滤器(pv,mbuffer,grep...).

  2. 我"觉得"在某些情况下可能会更快.更快,因为有2个进程,1st(cat)执行读取而第二个执行任何操作.它们可以并行运行,这意味着有时可以更快地执行.

我的逻辑是否正确(第二个原因)?

shell command-line cat

90
推荐指数
8
解决办法
2万
查看次数

将.txt文件中的内容作为bash脚本的参数传递?

我需要"写一个脚本来将用户添加到你的系统中,其中用户的名字被赋予脚本作为参数n(在?中,教授的拼写错误)格式的文本文件

Last_Name  First_Name  Middle_Initial  Group
Run Code Online (Sandbox Code Playgroud)

(其余说明FYI)您的脚本应创建最多8个字符的唯一用户名,并为用户生成随机密码.应根据用户所在的组为用户分配主目录.您可以假设用户属于Management("mgmt"),Employee("empl")或Temporary("temp"),并且他们各自的目录是在/ home中的这些组名下.例如,如果John Doe在"mgmt."中,并且他的用户名是jdoe1234,那么他的主目录应该在/ home/mgmt/jdoe1234中.锁定主目录,使得没有其他人拥有主目录的权限而不是用户自己.您的脚本应该生成一个名为users.txt的文件,其中包含以下列:

姓氏名字UID密码

可用于将用户名和密码分发给用户.

第一部分(不是斜体)让我感到困惑.如果我理解他的措辞正确,他希望我从单独的.txt文件中获取文本并将其用作我脚本的参数?有了这个想法

./file.sh arg1 arg2 arg3 arg4
Run Code Online (Sandbox Code Playgroud)

除了那些args将成为.txt文件中的前四个单词?比方说,如果.txt文件包含"Doe John A empl",那就像打字一样

./file.sh arg1 arg2 arg3 arg4
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的尝试(我实际上尝试了其他的东西,但这就是我现在在屏幕上看到的,有点像我开始的那样):

#!/bin/bash
echo "$(cat file.txt)"
lname=$(echo $1|head -c 3)//to make username use first 3 letters of last name
fname=$(echo $2|head -c 1)//to make username use first letter of first name
mname=$3
group=$4
echo "$lname$fname$mname$group"
Run Code Online (Sandbox Code Playgroud)

截至目前,第一行以下的任何内容都没有做任何事情.我从文件内容中获取了命令行参数的第一行,我使用它,因为我认为它会让我使用.txt文件中的内容作为参数,但显然没有这样做.它只是输出它的内容,而不是让我使用每个单词作为参数.不知道该怎么办.有帮助吗?我认为这不会非常困难,因为我开始编写脚本,假设用户提供了参数,但我重读了说明的第一部分,并假设他希望从单独的.txt文件中获取它们.

linux bash

8
推荐指数
1
解决办法
3万
查看次数

是否可以从文件中`git add`一个文件列表?

假设我在一个文件中有一个文件列表(换行符分隔),并且我想要git add所有这些文件。

有没有办法直接做到这一点?

我已经在线检查并查看了git help add,但没有看到任何有帮助的内容。

git

7
推荐指数
1
解决办法
1218
查看次数

bash:如何 cd 进入 .txt 文件第一行写入的目录

我是 bash 脚本新手。我有一个名为dir.txt存储此文本的文件:

./src/defaultPackage

Run Code Online (Sandbox Code Playgroud)

如何在一行中读取dir.txt并切换到目录?./src/defaultPackage

我已经尝试过cat ./dir.txt | xargs cdcd抛出no such file or directory错误

bash cd

0
推荐指数
1
解决办法
1343
查看次数

标签 统计

bash ×3

cat ×1

cd ×1

command-line ×1

git ×1

linux ×1

shell ×1

xargs ×1