Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

5
用多行JSON进行卷曲
考虑下面的curl命令,是否可以在JSON中使用换行符(不使用minify)并直接在bash中执行(Mac / Ubuntu) curl -0 -v -X POST http://www.example.com/api/users \ -H "Expect:" \ -H 'Content-Type: text/json; charset=utf-8' \ -d \ ' { "field1": "test", "field2": { "foo": "bar" } }' 当我运行上述命令时,“second { 如何修复以上命令?”出现了错误。 更新:实际上我以前能够运行该命令而没有问题,不确定为什么最近会发生问题。
83 bash  shell  ubuntu  curl 

5
有没有一种方法可以编写一个bash函数来中止整个执行过程,而无论其调用方式如何?
我在bash函数中使用“ exit 1”语句来终止整个脚本,并且运行良好: function func() { echo "Goodbye" exit 1 } echo "Function call will abort" func echo "This will never be printed" 但是后来我意识到,当这样调用时,它不会起作用: res=$(func) 我知道我创建了一个子shell,并且“ exit 1”中止了该子shell,而不是主要子shell...。 但是,有没有一种方法可以编写一个中止整个执行过程的函数,而无论其调用方式如何?我只需要获取实际的返回值(由函数回显)。
83 bash  function  exit  subshell 


5
使用带有密码的sudo作为参数[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 8年前关闭。 改善这个问题 我想使用密码作为参数运行sudo,以便可以将其用于脚本。我试过了 sudo -S mypassword execute_command 但没有成功。有什么建议么?
83 linux  bash  sudo 

6
在Bash中循环浏览字母
我要将mv所有以'x'开头的文件都保存到目录'x'中;就像是: mv path1/x*.ext path2/x 并针对所有字母a,...,z执行此操作 我如何编写一个bash脚本来使字母中的“ x”循环?
82 bash  loops  for-loop 

5
如何检测Docker是否以编程方式成功运行?
我正在编写一个非常简单的bash脚本,以快速检查我的容器仍在构建并正确启动,并且其中的应用程序能够响应请求。 有时会docker run失败,例如因为我尝试将容器绑定到的端口已分配。但是当发生这种情况时docker run,退出代码仍为0,因此我无法使用退出代码。如何以编程方式检查容器是否已正确启动? 我正在考虑的解决方案是: 解析输出中的错误 docker ps 查看容器是否正在运行 但是这些似乎都有些过分和丑陋。我是否缺少更好的方法来检查是否docker run成功?
82 bash  docker 

5
如何将bash脚本直接嵌入git别名中
我可以嵌入以下bash shell代码: for name in $(git diff --name-only $1); do git difftool $1 $name & done 直接进入创建git别名: git config --global alias.diffall ***my-bash-code-here*** 这从我之前关于SO的问题/答案开始,在该问题中,我将代码放入.sh文件中,然后将其别名为该文件: git config --global alias.diffall '!sh diffall.sh' 但是,在对简单性的永无止境的追求中,是否有一种方法可以跳过文件并将代码直接插入别名中?我不知道格式...
82 git  bash  shell  alias 

6
在BASH中使用mv向文件名添加时间戳
好吧,我是linux新手,我在使用简单的bash脚本时遇到了问题。 我有一个程序可以在运行时添加到日志文件中。随着时间的流逝,该日志文件将变得越来越大。我想创建一个启动脚本,该脚本将在每次运行之前重命名并移动日志文件,从而为程序的每次运行有效地创建单独的日志文件。到目前为止,这是我得到的: 糊盒 DATE=$(date +"%Y%m%d%H%M") mv server.log logs/$DATE.log echo program 运行时,我看到以下内容: : command not found program 当我CD到logs目录并运行dir时,我看到以下内容: 201111211437\r.log\r 这是怎么回事?我假设我缺少一些语法问题,但似乎无法弄清楚。 更新:由于下面的Shellter评论,我发现问题是由于我正在Windows的Notepad ++中编辑.sh文件,然后通过ftp发送到服务器,然后通过ssh运行文件。在文件上运行dos2unix后,它可以工作。 新问题:如何首先正确地保存文件,以避免每次重新发送文件时都必须执行此修复程序?
82 linux  bash 

1
sudo bang bang到底是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 sudo bang bang(sudo !!)的作用是什么?何时需要使用它?
82 linux  bash  terminal  sh 

11
在bash中展开可能的相对路径
作为我的脚本的参数,有一些文件路径。这些当然可以是相对的(或包含〜)。但是对于我编写的功能,我需要绝对的路径,但没有解析其符号链接。 有什么功能吗?

7
仅将STDERR通过过滤器输送
在bash中,是否可以通过STDOUT统一将STDERR通过过滤器传递?那就是我想要 STDOUT ────────────────┐ ├─────> terminal/file/whatever STDERR ── [ filter ] ──┘ 而不是 STDOUT ────┐ ├────[ filter ]───> terminal/file/whatever STDERR ────┘
82 linux  bash  redirect 

5
什么是Bash文件扩展名?
我已经在文本编辑器中编写了bash脚本,我将该脚本另存为什么扩展名,以便可以作为bash脚本运行?我创建了一个脚本,该脚本在理论上应该启动ssh服务器。我想知道如何在单击脚本后使脚本执行。我正在运行OS X 10.9.5。
82 bash  shell 

13
如何在Bash中的字符串中的每个字符上执行for循环?
我有一个像这样的变量: words="这是一条狗。" 我想打一个for循环的每个字符,一次一个,例如,第一character="这",然后character="是",character="一"等 我知道的唯一方法是将每个字符输出到文件中的单独行,然后使用while read line,但这似乎效率很低。 如何通过for循环处理字符串中的每个字符?
82 bash  for-loop 


5
使用命令行工具按排序顺序计算重复项
我有一个命令(cmd1),它可以通过日志文件来过滤出一组数字。这些数字是随机顺序的,因此我使用sort -gr获取数字的反向排序列表。此排序列表中可能有重复项。我需要在该列表中找到每个唯一编号的计数。 例如,如果cmd1的输出是: 100 100 100 99 99 26 25 24 24 我需要另一个命令,可以将上述输出传递到该命令,以便得到: 100 3 99 2 26 1 25 1 24 2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.