Articles of bash

安装composer时出错 – curl:(23)Failed writing body(0!= 16133)

我想在debian 8 jessie中安装symfony,但是我在terminal执行这个指令时遇到问题: curl -sS https://getcomposer.org/installer | php 这是错误信息: bash:php:不用说encontróla orden curl:(23)书写体失败(0!= 16133) 有人可以帮我吗? 谢谢。 抱歉我的英语

用CTRL-C终止一个由bash脚本启动的进程

我遇到了一个在bash脚本中终止执行进程的问题。 基本上我的脚本执行以下操作: 发出一些启动命令 开始等待CTRL+C停止的程序 对程序回收的数据进行一些后期处理 我的问题是,当我按CTRL+C ,整个脚本终止,而不仅仅是“内部”程序。 我已经看到一些脚本这样做,这就是为什么我认为这是可能的。 提前致谢!

获取按最近访问bashsorting的窗口列表

我知道你可以做wmctrl -l列出所有打开的窗口与他们的ID。 我想这个列表按最近的访问sorting(与你做Alt+Tab时相同的顺序),他们是用任何方式与wmctrl或任何其他命令行工具? 我正在使用xfce4,如果你知道一个方法来做到这一点

如何计算文件中的数字/字母的数量?

我尝试在Bash文件中计算数字和字母的数量。 我知道我可以使用wc -c file来计算字符的数量,但是如何将它修复为只有字母和数字?

如何将函数/别名定义写入Bash历史?

假设我有一个function: lsm(){ ls ~/music } 那么,让我们说,我跑了: lsm 之后,如果我按“向上”键,那么我会看到lsm :我跑过的最后一个命令。 不过,我打算让Bash历史logging写出函数/别名的完整的扩展定义。 所以如果我按下“Up”键,我会在Bash的历史logging中看到ls ~/music ,之前只inputlsm 。

:处理很多信号

我正在玩bash和信号处理程序,发现一个有趣的事情。 但我无法解释为什么如此。 例如,我们有一个脚本test.sh,它可以处理SIGTERM: trap 'echo "sig 15 rcvd" ' 15 trap 'echo "sig 10 rcvd" ' 10 while true do ; do something sleep 0.2 done 所以,当我向这个脚本发送一些信号时: kill -15 <pidof test.sh>; kill -10 <pidof test.sh> 我已经收到信号10早于信号15: sig 10 rcvd sig 15 rcvd 如果我发送两次信号10或15脚本只打印一次: kill -15 <pidof test.sh>; kill -15 <pidof test.sh> sig 15 rcvd 这也是奇怪的:我build议这是因为我们对同一个pid有双重信号,只有一个信号发送给它。 […]

通过自己的脚本暂时改变bash提示符

我想写一个很小的shell脚本,当它太长时,会缩短命令提示符。 在bash中设置PS1variables可以正常工作。 当我直接在脚本中尝试相同的命令并运行它时,没有任何反应。 #!/bin/bash PS1='\u:\W\$ ' 我尝试了eval "PS1='\u:\W\$ '" , export PS1='\u:\W\$ '并且exec PS1='\u:\W\$ '没有任何结果。 我怎样才能达到相同的结果作为在bash直接input? 先谢谢你

在bash中更新环境variables

我有一个长期运行的脚本,它与AWS有一些工作。 我有另一个脚本,它把AWSauthentication的环境variables,但只有15分钟有效。 现在我不能chnage长时间运行的脚本,所以有什么办法,我可以有cron工作或其他任何东西可以更新在长脚本运行的shell中的环境variables

Bash进程replace背景与作业控制

我有一个处理一批20MiB CSV文件的脚本,可以select压缩到4MiB左右。 有成千上万的文件和处理每个单独需要大约30秒; 读取一个未压缩的文件或者一个压缩文件,并且解压缩是“几乎是即时的”,高度暗示该过程可以在过程级别上并行化。 事实上,使用复杂的Rubystream水线就是这样做的。 不过,我试图用bash把Ruby代码分解成更小的部分。 为了控制工作,我想出了这个bash函数 wait_until_job_available() { maximum_jobs=${MAXIMUM_JOBS} [ $# -eq 0 ] || maximum_jobs="${1}" exit_status=0 RUNNING_JOBS=( $(jobs -p) ) while [ ${maximum_jobs} -le ${#RUNNING_JOBS[@]} ] && [ 0 -eq "${exit_status}" ] do # `wait -n` requires bash 4.3 which is unfortunately not available on several recent RHEL-based Linux distributions such as Oracle […]

循环文本文件和grep

我想循环每一行文本文件input.csv,并searchgrep在file.txt行。 然后输出到output.csv。 但是我没有得到这个代码的工作: while read NAME do grep -F "$NAME" file.txt >> output.csv done < input.csv input.csv看起来像这样: search1 search2 search3