Questions tagged «bash»

Bash是Bourne Again SHell,它是经典Unix sh(shell)的继承者。

3
#!/ bin / sh与#!/ bin / bash相比具有最大的可移植性
我通常使用Ubuntu LTS服务器从我了解的符号链接的工作/bin/sh来/bin/dash。通过符号链接/bin/sh到其他许多发行版本/bin/bash。 从中我了解到,如果脚本#!/bin/sh在最上面使用,它可能不会在所有服务器上以相同的方式运行吗? 当人们希望这些脚本在服务器之间具有最大的可移植性时,是否建议使用哪种外壳用于脚本?
36 linux  bash  shell  sh 

2
为什么将“脚本”重定向到/ dev / null /允许“屏幕”在被另一个用户使用时工作?
我被吸引到一个用户中以运行特定的长时间运行的脚本。我想使用屏幕,但收到错误消息“无法打开终端'/ dev / pts / 4'-请检查。” 因此,我在Google上四处搜寻,并遇到了一条指示运行的论坛帖子$ script '/dev/null/'。我这样做了,然后我可以进行筛选。 为什么这样做?su在该屏幕上无法作为被su用户运行吗?为什么将'script'重定向到/ dev / null可以避免这种情况呢?是否使用脚本以原始用户身份将日志写入某处?
36 linux  bash  gnu-screen  su 

4
bash:变量在读取循环结束时丢失值
我的一个shell脚本有问题。问了几个同事,但他们都只是摇了摇头(经过一番抓挠),所以我来这里就是一个答案。 根据我的理解,以下shell脚本应在最后一行打印“ Count is 5”。除非不是。打印“ Count is 0”。如果将“ while读取”替换为任何其他类型的循环,则可以正常工作。这是脚本: 回声“ 1”> input.data 回声“ 2” >> input.data 回声“ 3” >> input.data 回声“ 4” >> input.data 回声“ 5” >> input.data 碳纳米管= 0 cat input.data | 阅读时; 做 让CNT ++; 回声“计数到$ CNT” 完成 回声“计数是$ CNT” 为什么会发生这种情况,如何预防呢?我已经在Debian Lenny和Squeeze中尝试过,结果相同(即bash 3.2.39和bash 4.1.5。我完全承认自己不是shell脚本向导,因此希望使用任何指针。
36 bash  scope 

7
从bash命令输出创建“虚拟文件”?
我想知道是否有一种方法可以从bash输出中创建“虚拟文件”。 示例:假设我想通过电子邮件将输出mysqldump作为附件发送到外部电子邮件地址。我可以用Mutt来做。mutt我需要使用的选项是-a <name of the file I want to attach>。我知道我可以使用一个临时文件: mysqldump mysqldumpoptions > /tmp/tempfile && mutt -a /tmp/tempfile admin@example.org 但是我宁愿将mysqldump输出直接重定向到Mutt。Mutt的-a选项仅接受文件,而不接受流,但是也许有一种方法可以传递某种虚拟文件描述符或类似的东西。就像是: mutt -a $(mysqldump mysqldumpoptions) admin@example.org 可能吗?如果没有,为什么? 这可能是一个愚蠢的示例,并且肯定有更简单的方法来执行此操作,但是我希望它能解释我有关从另一个命令的输出创建虚拟文件的问题。
36 bash  redirection 

1
从终端会话中恢复正在运行的脚本
因此,我正在使用GNU屏幕来管理多个正在运行的脚本/程序。多路复用和可分离性很有帮助。 我从磁盘上删除了一个脚本,现在在查找备份时遇到了一些麻烦。但是,其中一个终端会话正在执行脚本,然后删除了该文件,该脚本继续正常运行。 有没有办法劫持当前正在运行脚本的终端会话以恢复该文件的内容?

6
合并Linux中的2个目录树而不进行复制?
我有两个具有相似布局的目录树,即 . |-- dir1 | |-- a | | |-- file1.txt | | `-- file2.txt | |-- b | | `-- file3.txt | `-- c | `-- file4.txt `-- dir2 |-- a | |-- file5.txt | `-- file6.txt |-- b | |-- file7.txt | `-- file8.txt `-- c |-- file10.txt …
35 linux  bash  files 

6
Bash循环-当我在命令中按Control-C时如何停止循环?
我正在同步一些目录。我有一个bash终端打开,正在执行如下操作: for DIR in * ; do rsync -a $DIR example.com:somewhere/ ; done 但是,如果要停止全部操作,请按Control-C。这样就停止了rsync,但随后继续进行下一个。在这种情况下,我意识到发生了什么,然后像疯子一样按Control-C,直到一切恢复正常。 有什么办法可以“解决”这个问题。我想要它,如果我有这样的循环,然后按Control-C,它将使我回到我的bash shell中。

8
在PuTTY和屏幕上使用Ctrl-箭头键
我进行了搜索,但找不到任何解决方案。我从Windows使用PuTTY连接到运行bash和screen的各种服务器。bash似乎可以使用ctrl-arrow键在命令行上逐字跳转,但在屏幕内无法正常工作。不在屏幕上,向左ctrl发送“ ^ [OC,向右发送ctrl-” [^ OD]。在屏幕上,我得到的是“ ^ [[C”和“ ^ [[D”,这似乎是使用PuTTY时,是否有任何方法可以使屏幕识别ctrl箭头键(仅供参考,我不记得在Linux中使用gnu-terminal而不是PuTTY时遇到此问题)。 更新:看来腻子是问题所在,因为它没有发送进行此操作所需的转义码。我现在放弃,使用Cygwin + mintty。
33 bash  gnu-screen  putty 

8
有什么理由在zsh上使用bash吗?[关闭]
我很好奇为什么有人要运行bash而不是zsh。我的意思是zsh与bash完全向后兼容。不要误会我的意思:我不喜欢bash或其他任何东西。我只是真的想知道使用它比zsh有什么好处。 那么在zsh上使用bash有什么原因呢?
33 bash  scripting  shell  zsh 


2
Bash:运行具有良好退出状态的可执行文件
我想在Linux中运行一个可执行文件,无论它返回的退出状态如何,我都想返回一个良好的退出状态。(即没有错误。) (这是因为我正在使用,sh -ex并且即使一个(特定)命令失败,我也希望脚本继续运行。)
32 linux  bash 

2
ulimit -n和/ proc / sys / fs / file-max有何区别?
我注意到在刚从EC2启动的新CentOS映像上,ulimit的默认值为1024个打开的文件,但是/ proc / sys / fs / file-max设置为761,408,我想知道这两个限制是如何工作的一起。我猜测ulimit -n是每个用户的文件描述符数量限制,而/ proc / sys / fs / file-max是系统范围的?如果是这种情况,请说我已经以同一用户身份登录过两次-每个登录用户的打开文件数是否有1024个限制,或者每个登录用户之间限制有1024个合并的打开文件,在用户中? 如果您的系统从未打开太多文件,那么将最大文件描述符设置为很高的数量是否会对性能产生很大影响?
32 linux  bash  kernel  ulimit 

3
当受系统监控的服务进入失败状态时获得通知
当我的systemd服务崩溃或挂起(即进入失败状态;我使用WatchdogSec =监视挂起)时,我需要发送网络消息。我注意到较新的systemd具有FailureAction =,但是然后看到它不允许任意命令,而只是重新启动/关闭。 具体来说,我需要一种方法,在systemd检测到程序崩溃时发送一条网络消息,而在检测到程序挂起时发送另一条消息。 我希望有一个比“解析日志”更好的答案,并且我需要一些响应时间很短的东西,因此我认为轮询方法不是很好;它应该是事件发生触发的事件。
32 linux  bash  service  systemd 



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.