Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

3
Bash 4.3在OS X上的子字符串负长度
Bash 4.2增加了对负子串长度的支持: http://tldp.org/LDP/abs/html/abs-guide.html#SUBSTREXTR01 示例37-12 字符串提取构造中的负参数 当“ length”参数为负数时,它用作“从端点偏移”参数。 例如,在Ubuntu上测试时,以下输出“ World”: STR="Hello World!" echo ${STR:6:-1} 但是在OS X(GNU bash,版本4.3.42(1)-发行版(x86_64-apple-darwin14.5.0))中,这种用法会产生以下错误: -1: substring expression < 0 该OS X是特定的,还是在以后的bash更新中再次被禁用?有没有办法为OS X启用此功能?

3
如何在git post-receive hook中以root身份执行命令
我最近刚刚在服务器上为作为Upstart服务运行的Web应用程序设置了一个远程git repo。我想使用接收后挂钩触发更新应用程序代码并停止然后重新启动upstart服务所需的操作。这是我的repo.git / hooks / post-receive文件: #!/bin/bash export GIT_WORK_TREE=/var/www/current/myapp/ echo "Checking out new files and restarting app" echo $USER git checkout -f sudo /sbin/stop myapp-service sudo /sbin/start myapp-service 根据我在此处阅读的信息:askUbuntu.com,获取以root用户身份执行的upstart命令的方法是编辑visudo文件。以下是相关代码段: %sudo ALL=(ALL:ALL) ALL admin ALL=(ALL:ALL) NOPASSWD: /sbin/start myapp-service /sbin/stop myapp-service 但是当我git push到远程时,我得到如下输出: $ git commit -am "test" && git push prod …
12 linux  bash  git  sudo  upstart 

2
当管道终止到子命令时,为什么bash while循环不退出?
为什么下面的命令不退出?循环不是无限运行,而不是退出。 尽管我使用更复杂的设置发现了此行为,但命令的最简单形式简化为以下形式。 不退出: while /usr/bin/true ; do echo "ok" | cat ; done | exit 1 上面没有错别字。每个“ |” 是管道。“出口1”代表另一个已运行并已退出的过程。 我期望“退出1”会在while循环上导致SIGPIPE(在没有读取器的管道上进行写操作),并使循环中断。但是,循环继续运行。 为什么命令不停止?

2
Bash,如何全局修复^ H和^?退格键问题
我想解决这个常见问题,即远程服务器上的Shell认为终端的退格键是^?,有时它认为是^H,并且碰巧是不正确的,并且当我按退格键时输出错误的字符。如果将其设置为^ H或^?用stty erase ^H或stty erase ^?在我的.bashrc文件,并使用一些其他的终端访问服务器,它往往最终是错误的。因此stty erase [whatever],当我发现Backspace键错误时,我不得不手动键入以进行修复。 我想做的是绑定^?和^H退格,因为如果可以的话,我可以将其添加到我的所有.bashrc文件中,它肯定会结束这场噩梦。这可能吗?如果是这样,怎么办?
12 linux  bash  terminal  shell  bashrc 

4
Bash运行命令一定时间?
我正在制作bash脚本供我使用。如何在特定时间(例如20秒)内运行命令并终止命令?我尝试了很多解决方案,但没有任何效果,我还尝试了超时命令,但均未成功。请给我一些解决方案。 例如:我想在10秒后在脚本和终端中运行此命令 some command
12 bash  time  timeout 

5
使用html按钮运行shell脚本
我想在网站上按下按钮时启动bash脚本。这是我的第一次尝试: <button type="button" onclick="/path/to/name.sh">Click Me!</button> 但是没有运气。有什么建议? 编辑-遵循slhclk和mit的建议: 我在/ var / www中有一个php文件,该文件指向我的网络浏览器。该文件的内容如下: <?php exec("/home/aa/scripts/test.sh"); ?> tesh.sh包含以下内容: screen -S server1 -X quit 如果我键入/home/aa/scripts/test.shshell,脚本将能够执行。但是,当我将Web浏览器指向http://example.com/screen.php(上面有代码)时,我看到一个空白页,并且脚本未执行。两者都具有执行权限。为什么不起作用?
12 bash  shell  html 

3
过滤顶部命令输出
我正在运行Mac,想过滤top特定进程的命令输出,以便仅显示PID,COM​​MAND和%CPU列。 获取进程的PID后,我运行: top -pid 1234 但是,该过程显示超过15列。我可以将'command的输出输入到awk并仅显示: PID COMMAND %CPU 列? 我不想将输出存储在文本文件中然后进行处理。我对实时监控过程感兴趣。
12 macos  command-line  bash  awk  top 

3
如何避免在Bash提示中出现波浪号〜?
我想从显示在PS1变量中的波浪号中删除。 我当前的PS1字符串: PS1="\h:\w\n$" 提示如下: lnx-hladky:/tmp/plugtmp $ 我不喜欢$ HOME目录显示为波浪号。可以避免吗? 它会引起问题,例如: lnx-hladky:~/DOC $ 文档说: \w : the current working directory, with $HOME abbreviated with a tilde \W: the basename of the current working directory, with $HOME abbreviated with a tilde 有没有可能避免$ HOME用代字号缩写? 我找到了一种解决方法,但是我觉得它太复杂了: PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"' PS1=$ 谁能提出更好的解决方案?我觉得运行这么多命令只是为了获得提示并不是很好。(日期,whoami,主机名,pwd)。

6
自定义vim突出显示
我现在正在编辑一些xml,并且已经给自己留下了一些有关要返回的内容的注释。像这样 <!-- Question: bla bla --> 我现在正在用vim进行编辑,我希望vim现在突出显示“问题”,以便我可以轻松查看代码并找到所有需要查看的地方。我知道我需要在vimrc中添加一些内容,但我认为我可能正在搜索错误的内容。 更新资料 我尝试将其放入我的容器中,.vimrc但没有效果: syn keyword JakeAnnotation Question hi JakeAnnotation gui=bold term=bold cterm=bold 更新2 实际上,我可以看到以前所做的事情产生了一些影响,因为当我这样做时: :hi 它向我展示了它突出显示的所有内容,其中一项是: JakeAnnotation xxx term=bold cterm=bold ctermbg=6 (并且xxx的格式正确) 这使我相信我只是没有正确定义问题。问题是否需要自己排成一行? 更新3 好的,对于用户22303的帖子,我可以进行以下工作: highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black match MyQuestion /Question/ 但是我怀疑每个文件只能有一个匹配项。因为当我这样做时: highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black match MyQuestion /Question/ …

4
从一台外部服务器到另一台外部服务器的SCP
我正在尝试使用本地服务器上的SCP将文件从一个远程服务器复制到另一台远程服务器(两个远程服务器都使用自定义端口(xxxx) 我在尝试: scp -r -P xxxx root@xxx.xxx.xxx.111:/home/myimages/images.tar.gz root@xxx.xxx.xxx.222:/home/myimages/images.tar.gz 但我收到以下错误: ssh: connect to host xxx.xxx.xxx.222 port 22: Connection timed out 有什么建议?
12 linux  bash  ssh  scp 

4
将文本的位文件转换为二进制文件
我有一个instructions.txt包含内容的文件: 00000000000000000000000000010011 00000010110100010010000010000011 00000000011100110000001010110011 00000000011100110000010000110011 00000000011100110110010010110011 00000000000000000000000000010011 如何创建instructions.bin与相同数据的二进制文件instructions.txt。换句话说,.bin文件应与文件中的192位相同.txt,每行32位。我在Ubuntu Linux上使用bash。我试图使用,xxd -b instructions.txt但是输出的长度比192位长。
12 linux  bash  binary-files  xxd 

1
我可以反转终端的水流方向吗?
我不确定如何以其他方式表达这个问题,仅此而已。是否可以颠倒终端打印文本的方式? 例如,如果键入命令,则从终端的底部键入命令,然后从底部产生输出。我想知道是否可以逆转此操作,所以我从顶部开始输入,而我的输出从顶部开始。
12 bash  terminal  cmd.exe 

2
Mac OS X如何设置$ PATH的值?
我对如何设置$ PATH有基本的了解,但是是否有文档完全描述了Mac OS在何处获取所有附加到$ PATH的路径?我知道类似/etc/profile,,/etc/paths和的东西/etc/profile.d,但是还有其他脚本最终会影响$ PATH的值吗?我也并不是非登录之间非常熟悉,并登录shell( ,.bashrc),.bash_profile但我知道的基本区别。
12 macos  mac  bash  path 



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.