标签: bash

捕获多行输出到Bash变量

我有一个脚本'myscript',输出如下:

abc
def
ghi
Run Code Online (Sandbox Code Playgroud)

在另一个脚本中,我打电话给:

declare RESULT=$(./myscript)
Run Code Online (Sandbox Code Playgroud)

$RESULT获得价值

abc def ghi
Run Code Online (Sandbox Code Playgroud)

有没有办法用换行符或'\n'字符存储结果,所以我可以输出' echo -e'?

variables bash

542
推荐指数
5
解决办法
26万
查看次数

为什么元字符周围有时需要空格?

几个月前,我在手臂上纹了一个叉形炸弹,我跳过了空白,因为我觉得没有它们看起来更好.但令我沮丧的是,有时(并不总是)当我在shell中运行它时它不会启动一个fork炸弹,但它只是给出了一个语法错误.

bash: syntax error near unexpected token `{:'
Run Code Online (Sandbox Code Playgroud)

昨天它发生在我试图在朋友的Bash shell中运行它,然后我添加了空白,它突然工作,:(){ :|:& };:而不是:(){:|:&};:

空白是否重要; 我的胳膊上有语法错误吗?!

它似乎总是在zsh中工作,但在Bash中不起作用.

一个相关的问题没有解释关于空白的任何事情,这确实是我的问题; 为什么Bash需要的空白能够正确解析它?

syntax bash shell syntax-error

541
推荐指数
5
解决办法
8万
查看次数

从Bash命令查找和替换文本文件

对于给定的输入字符串进行查找和替换的最简单方法是什么,比方说abc,并替换为另一个字符串,比如XYZ在文件中/tmp/file.txt

我正在编写一个应用程序并使用IronPython通过SSH执行命令 - 但我不熟悉Unix,也不知道要查找什么.

我听说Bash除了是命令行界面外,还可以是一种非常强大的脚本语言.所以,如果这是真的,我假设您可以执行这些操作.

我能用bash做什么,以及实现目标的最简单(一行)脚本是什么?

ssh bash scripting ironpython replace

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

如何在bash脚本中添加数字

我有这个bash脚本,我在第16行遇到了问题.如何获取第15行的先前结果并将其添加到第16行的变量中?

#!/bin/bash

num=0
metab=0

for ((i=1; i<=2; i++)); do      
    for j in `ls output-$i-*`; do
        echo "$j"

        metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15)
        num= $num + $metab   (line16)
    done
    echo "$num"
 done
Run Code Online (Sandbox Code Playgroud)

bash mathematical-expressions integer-arithmetic

523
推荐指数
11
解决办法
86万
查看次数

520
推荐指数
10
解决办法
39万
查看次数

如何在bash中等待多个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?

如何在bash脚本中等待从该脚本生成的几个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?

简单的脚本:

#!/bin/bash
for i in `seq 0 9`; do
  doCalculations $i &
done
wait
Run Code Online (Sandbox Code Playgroud)

上面的脚本将等待所有10个生成的子进程,但它总是会给出退出状态0(请参阅参考资料help wait).如何修改此脚本,以便它发现生成的子进程的退出状态,并在任何子进程以代码!= 0结束时返回退出代码1?

有没有更好的解决方案,而不是收集子流程的PID,按顺序等待它们并总结退出状态?

bash process wait

518
推荐指数
18
解决办法
48万
查看次数

如何让cURL不显示进度条?

我正在尝试在脚本中使用cURL并让它显示进度条.

我已经试过了-s,-silent,-S,和-quiet选择,但他们没有工作.

这是我尝试过的典型命令:

curl -s http://google.com > temp.html
Run Code Online (Sandbox Code Playgroud)

我将它推送到文件时只获得进度条,因此curl -s http://google.com没有进度条,但curl -s http://google.com > temp.html确实如此.

unix linux bash scripting curl

518
推荐指数
5
解决办法
29万
查看次数

如何使用bash/sed脚本删除文本文件的第一行?

我需要使用bash脚本从一个巨大的文本文件中重复删除第一行.

现在我正在使用sed -i -e "1d" $FILE- 但删除大约需要一分钟.

有没有更有效的方法来实现这一目标?

bash scripting sed

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

如何使用Bash迭代目录中的文件?

我需要编写一个脚本,用不同的参数启动我的程序,但我是Bash的新手.我这样开始我的程序:

./MyProgram.exe Data/data1.txt [Logs/data1_Log.txt].

这是我想要做的伪代码:

for each filename in /Data do
  for int i = 0, i = 3, i++
    ./MyProgram.exe Data/filename.txt Logs/filename_Log{i}.txt
  end for
end for
Run Code Online (Sandbox Code Playgroud)

所以我真的很困惑如何从第一个创建第二个参数,所以它看起来像dataABCD_Log1.txt并启动我的程序.非常感谢帮助.

PS我知道那里有类似的问题,但我没有发现创建我的日志文件名称.

bash filenames for-loop glob

515
推荐指数
5
解决办法
69万
查看次数

双方括号[[]]比Bash中的单方括号[]更好吗?

最近在一次代码审查中,一位同事声称该[[ ]]构造比[ ]在类似的构造中更受欢迎

if [ "`id -nu`" = "$someuser" ] ; then 
     echo "I love you madly, $someuser"
fi
Run Code Online (Sandbox Code Playgroud)

他无法提供理由.有吗?

syntax bash if-statement

514
推荐指数
8
解决办法
20万
查看次数