标签: stdin

如何编写接受来自文件或标准输入的输入的脚本?

如何编写一个脚本来接受来自文件名参数或标准输入的输入?

例如,您可以使用less这种方式。一个可以执行less filename和等效cat filename | less

有没有一种简单的“开箱即用”的方式来做到这一点?还是我需要重新发明轮子并在脚本中编写一些逻辑?

bash command-line stdin

68
推荐指数
3
解决办法
12万
查看次数

谁在回声 * 中处理明星 *

谁处理(解释)* in

echo *
Run Code Online (Sandbox Code Playgroud)

回声是否看到星号或外壳会关心它并返回文件名列表..

关于什么

cp temp temp*
Run Code Online (Sandbox Code Playgroud)

unix bash shell shell-script stdin

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

阅读前清除标准输入

我有以下 bash 脚本:

# do some time consuming task here
read -p "Give me some input: " input
Run Code Online (Sandbox Code Playgroud)

现在您可能已经猜到了,如果用户在“耗时任务”期间按了一些随机键,那么不需要的输入也会被考虑在内。stdin在发出读取命令之前如何清除(或至少忽略它)?

linux bash shell stdin

15
推荐指数
5
解决办法
2万
查看次数

Windows 如何将文件参数重定向到标准输出?(Windows 相当于`/dev/stdout`)

视窗控制台:

  • 工具 A 可以将二进制数据写入文件,但无法告诉它使用标准输出。
  • 工具 B 可以从 stdin 读取二进制数据并处理其中的信息。

如何在不使用中间文件的情况下通过 B 获得 A 的输出?

换句话说:Windows 相当于/dev/stdout什么?

windows pipe stdout stdin

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

指示标准输入结束

如何在标准输入中表明一个人已经完成了进入测试?

例如,假设我希望使用 MD5 加密“蓝色”(我知道 MD5 不安全,但仅针对此示例)。我试过

user$ blue | md5
Run Code Online (Sandbox Code Playgroud)

我被引导理解是一个管道输入到标准输入的方式,但它不能正常工作。

但如果我只是输入

user$ md5
Run Code Online (Sandbox Code Playgroud)

我可以输入“蓝色”这个词。但是如何向 md5 表明我已完成输入文本?

terminal keyboard-shortcuts shell stdin

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

比较两个目录树

我有两个音乐库,一个版本比另一个新。我想将它们与我需要将哪些文件从新音乐树复制到旧文件进行比较。

我已经diff --brief -r /oldmusicdir/ /newmusicdir/根据另一个用户的建议进行了尝试,但是 ^C 十五分钟后的过程(我猜差异是扫描音乐文件本身——这不是必需的)。

然后我尝试find /oldmusicdir/ -type d | sort > oldmusicdir了旧的和新的,然后运行diff oldmusicdir newmusicdir但是,因为我将音乐目录存储在不同的位置,所以每个条目都被标记了。

接下来我尝试运行,find /musicdir/ -type d | basename -s - | sort > musicdir但我的 musicdir 文件只是读取“-”

有谁知道如何让 basename 从 STDIN 接受?或者,有没有人有更好的方法来快速比较两个音乐目录?

谢谢!

diff stdin

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

两个程序的 StdIn 和 StdOut 绑定

假设我有两个名为ProgramA和 的程序ProgramB。我想在 Windows cmd 解释器中同时运行它们。但我希望StdOutofProgramA挂钩到StdInof ProgramB,而StdOutofProgramB挂钩到StdInof ProgramA

像这样的东西

 ________________ ________________
| | | |
| StdIn(== ? === ? ==(StdOut |
| 程序A | | 程序B |
| | | |
| 标准输出)== ? === ? ==)标准输入 |
|________________| |________________|

是否有任何命令可以执行此操作 - 某种方法可以从 cmd 实现此功能?

windows redirection stdout stdin batch-file

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

将文件重定向到特定程序后返回“stdin”

我需要使用bash的重定向工具来实现特定的效果。

我知道我可以将文件重定向到某个程序的标准输入:

[user@host]$ application < file.txt
Run Code Online (Sandbox Code Playgroud)

问题是,我想知道在将文件内容传递给该程序后,我能否重新获得对该程序输入的控制权。换句话说,我想运行一个类似于上面的命令,然后,我希望它等待来自标准输入(键盘)的进一步命令,而不是终止应用程序。

当我写这个问题时,我突然想到我可能会编写另一个应用程序(或脚本),首先将一些数据写入标准输出,然后充当回显,例如:

[user@host]$ stdin_proxy.sh | application
Run Code Online (Sandbox Code Playgroud)

它会起作用吗,有没有更好的方法来做到这一点?有一堆 Googleable 教程涵盖了这个问题,但它们都相当于一个建议——“在读取文件内容后重新打开标准输入”。然而,我无权访问application.

linux bash shell redirection stdin

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

在 vim 中从标准输入读取新的命名文件

我想在一个名为f的非现有文件上启动 vim ,内容为c。无论˚FÇ是任意的,我想没有把在VIM配置任何东西来填充新的缓冲区与Ç

基本上,我想结合

$ 回声c | vim -

$ vim f

vim 是否有一个标志可以让我实现这一目标?

vim stdin

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

将多行输入(此处为文档)提供给 cmd.exe 脚本中的命令

在 Bash 中,我可以做这样的事情

somecmd << END
a lot of 
text here
END
Run Code Online (Sandbox Code Playgroud)

直接从脚本向命令提供输入。我需要在 CMD.exe 批处理文件(.cmd 脚本)中做同样的事情。是否可以?

shell-script stdin cmd.exe

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