我在Stack Overflow上看到很多答案和评论都提到避免子shell。 有时会给出功能原因(最常见的是可能需要在子shell之外读取从中分配的变量), 但在其他情况下,避免似乎被视为一个目标。 例如: 合并TSV文件的两列 建议使用{ ... ; } | ...而不是 ( ... )...
我有一个名为start.sh的bash脚本,内容如下: for thing in foo bar; do { background_processor $thing cleanup_on_exit $thing } & done 这...
如何在Bash中判断文件描述符是否正在使用?例如,如果我有一个读取、写入和关闭fd 3的脚本。exec 3< <(some command here) ... cat <&3 exec 3>&- 如何最好地确保我的脚本不会干扰在我脚本运行之前可能已经设置...
initiate () { read -p "Location(s) to look for .bsp files in? " loc find $loc -name "*.bsp" | while read do if [ -f "$loc.bz2" ] then ...
echo hello | read str echo $str 这个read命令是在管道之后执行的,这意味着echo输出的内容被读入到str中 - 但由于它在管道后面,str的内容现在在一个子shell中,父shell无法读取。 str的内容会发生什么? 管道是否创建了一个子shell,然后一...
假设有一个文件"foo.txt",它是从以下内容创建的: $ seq 1 10 > "foo.txt" 我试图读取文件的第一行和最后一行,我开始通过将文件重定向到子shell来实现,以便命令列表按顺序消耗文件 -- 每个命令从上一个命令离开的地方开始消耗输入,我猜想: $ (he...
我正在试图解决一个问题,我认为你不能将打开的db2连接传递给子shell。 我的代码组织如下: 驱动脚本(在my_driver.sh中)# foo.sh defines baz() bar(), which use a db2 connection # Also the "$para...