|
1
178
使用
你呢
戏法
或者写一个这样的函数:
仅供参考, http://www.etalabs.net/sh_tricks.html 是一个漂亮的收集必需的原油,以打击古怪和不相容的伯恩贝壳,上海。 |
|
2
116
如果您想读入大量数据并分别处理每一行,可以使用以下方法:
但是,一旦你开始想用这类东西做任何真正聪明的事情,你最好使用一些脚本语言,比如perl,你可以尝试这样的方法:
|
|
|
3
53
这是另一种选择
|
|
|
4
45
但是,请参阅@chepner的答案,以获取有关
|
|
|
5
41
我不是Bash方面的专家,但我想知道为什么没有人提出这一点:
|
|
|
6
27
|
|
|
7
15
从shell命令到bash变量的隐式管道的语法如下
或
|
|
8
15
可以从管道参数和命令行参数读取数据的智能脚本:
输出:
当脚本通过管道接收任何数据时,/dev/stdin(或/proc/self/fd/0)将是管道的符号链接。
如果不是,它将指向当前终端:
狂欢节
如果我们使用
|
|
|
9
10
第一次尝试非常接近。这种变化应该起作用:
输出为:
管道后面需要大括号来括起要测试的赋值和回显。
|
|
10
9
在我看来,在bash中读取stdin的最佳方法是以下方法,它还允许您在输入结束之前处理行:
|
|
|
11
7
因为我上当了,我想写张纸条。 我找到了这个线索,因为我要重写一个旧的sh脚本 与POSIX兼容。 这基本上意味着通过重写如下代码来绕过POSIX引入的管道/子shell问题:
分为:
代码如下:
分为:
使用旧的表示法,while循环不是在空输入上输入的, 但在POSIX符号中它是! 这是不可能的。 POSIX代码的行为更像旧的表示法 看起来像这样:
在大多数情况下,这应该足够好了。 如果某个命令打印空行。 在旧的表示法中,while主体被执行 在POSIX符号中,我们在身体前面断裂。 解决此问题的方法可能如下所示:
|
|
|
12
3
将某个内容管道化到包含赋值的表达式中并不是这样。 相反,请尝试:
|
|
|
13
3
也会工作,但它会打开另一个新的子壳后,管道,在哪里
不会。 我不得不禁用作业控制来利用 chepnars '方法(我从终端运行此命令):
注意:在非交互式shell中,默认情况下,作业控制处于关闭状态,因此您不需要
|
|
|
14
1
我想你想写一个shell脚本,可以从stdin获取输入。 但是,当您尝试内联执行时,您在尝试创建test=变量时迷失了方向。 我认为内联执行没有多大意义,这就是为什么它没有按您期望的方式工作。 我想减少
从各种输入中获取特定行。 所以我可以打字。。。
给你。 |
|
|
15
0
我想出了一个如下的解决方案
输出:
对于最后一种情况(3),您需要键入,按enter键并按CTRL+D结束输入。 |
|
|
16
-1
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
|
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 1 年前 |
|
|
Marco · PyCharm Linux系统文件上os.stat异常 1 年前 |