相关疑难解决方法(0)

如何将bash命令的输出作为参数传递给另一个?

我有一个程序,它返回一个文件名列表.我需要将这些文件的内容传递给另一个程序.

我知道如何使用cat传递内容:

cat file1 file2 file3 | some_program
Run Code Online (Sandbox Code Playgroud)

我想做的是:

list=`get_file_list`
cat ${list} | some_program
Run Code Online (Sandbox Code Playgroud)

虽然执行上述操作只会传递列表变量的内容,而不是文件的内容.

bash

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

Bash 管道无法与我的脚本配合使用

我写了两个脚本。一种是myscipt1.sh读取整数序列(作为参数提供)并报告最终数字:

[user@pc user] ./myscript1.sh 34 45 67 234
[user@pc user] 1200
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,脚本返回1200. 另一个脚本myscript2.sh采用字符串作为输入并返回整数序列:

[user@pc user] ./myscript2.sh a string to provide
[user@pc user] 364 465 786 34 22 1
Run Code Online (Sandbox Code Playgroud)

我想myscript1.sh通过传递结果来调用myscript2.sh,所以我尝试了:

[user@pc user] ./myscript2.sh my_string | ./myscript1.sh
Run Code Online (Sandbox Code Playgroud)

但我没有运气myscript1.sh(对传递的参数数量进行检查,没有传递任何参数退出)报告没有传递任何参数。

当我在我编写的脚本中使用管道时,Bash 似乎出现了问题。怎么做?

linux bash shell

2
推荐指数
1
解决办法
6198
查看次数

Bash pwd并打开管道不工作

我正在学习如何在bash中使用I/O重定向,并尝试使用管道的一些示例:

pwd | say
ls -l | grep "staff" > out.txt
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用两者pwdopen使用管道重定向时,命令失败,我只是收到open使用情况.

我正在尝试的是: pwd | open

从bash打开当前目录的正确方法是什么?

unix macos bash terminal

2
推荐指数
2
解决办法
510
查看次数

如何在bash中将输出作为命令行参数传递?

我有这两步bash命令:

L=`wc -l testfile | cut -d' ' -f1`
myprogram testfile $L testfile.out
Run Code Online (Sandbox Code Playgroud)

长话短说,myprogram需要将行数作为输入.

我想把它组合成一行.

这并没有工作,因为使用的是重定向|-通行证标准输出流作为一个文件,而不是一个字符串.

wc -l testfile | cut -d' ' -f1 | myprogram testfile - testfile.out
Run Code Online (Sandbox Code Playgroud)

有没有办法将它组合成一行?

bash io-redirection

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

标签 统计

bash ×4

io-redirection ×1

linux ×1

macos ×1

shell ×1

terminal ×1

unix ×1