Tag: bash

如何testingBash case语句中的空string?

我有一个基于variables的值执行操作的Bash脚本。 case语句的一般语法是: case ${command} in start) do_start ;; stop) do_stop ;; config) do_config ;; *) do_help ;; esac 如果没有提供命令,我想执行默认例程,如果命令无法识别,则执行do_help。 我尝试省略案例价值: case ${command} in ) do_default ;; … *) do_help ;; esac 结果是可以预见的,我想: syntax error near unexpected token `)' 然后,我尝试在正则expression式中使用我的最佳镜头: case ${command} in ^$) do_default ;; … *) do_help ;; esac 有了这个,一个空的$ {command}就进入了*的情况。 我想要做不可能的事情吗?

如何滚动鼠标与Git Bash?

使用Git Bash或MinGW Shell ,如果我input一个带有很多输出的命令,例如env ,我不能鼠标滚动。 常规的旧命令提示符( cmd.exe )窗口将执行此操作。

supervisord停止subprocess

其中一个问题就是,当我有一个命令转而产生另一个进程的时候,supervisord是无法杀死它的。 例如,我有一个java进程,当正常运行就像 $ zkServer.sh start-foreground $ ps -eaf | grep zk user 30404 28280 0 09:21 pts/2 00:00:00 bash zkServer.sh start-foreground user 30413 30404 76 09:21 pts/2 00:00:10 java -Dzookeeper.something..something supervisordconfiguration文件如下所示: [program:zookeeper] command=zkServer.sh start-foreground autorestart=true stopsignal=KILL 这种有多个孩子的过程在监督方面不能很好地处理。 所以,当我从supervisord运行这个,并试图从supervisorctl停止它,只有顶级进程被杀死,但不是实际的Java进程。

读取线路循环的shell脚本在第一行之后停止

我有以下的shell脚本。 目的是循环通过目标文件(其path是脚本的input参数)的每一行,并针对每一行进行工作。 现在,它似乎只能用于目标文件的第一行,并在处理该行后停止。 我的脚本有什么问题吗? #!/bin/bash # SCRIPT: do.sh # PURPOSE: loop thru the targets FILENAME=$1 count=0 echo "proceed with $FILENAME" while read LINE; do let count++ echo "$count $LINE" sh ./do_work.sh $LINE done < $FILENAME echo "\ntotal $count targets"

我的Git bash忘记了我的别名。 我能做什么?

我在运行Windows 7的笔记本电脑上使用最新的Git bash for Windows。当我定义我的别名时: $ alias gitc='git commit -a' 在会议期间一切正常,但如果我closures并打开bash,我无法恢复它们。 尽pipe如此,命令历史仍然保留。 我该怎么办? 我错过了什么? 谢谢!

在反向search(Ctrl + R)中,任何方法都可以在历史中的类似命令之间切换

我认为一个例子会很好的理解我的问题。 … scp file1 user10@192.168.10.1:/home/user1/linuxfiles/samplecode/important … … scp file1 user10@192.168.10.1:/home/user1/linuxfiles/samplecode/important/tested … … 假设这是历史命令的顺序。 如果我正在做Ctrl + R并键入scp ,它将显示最后执行的scp命令(即以'tested'结尾的行)。 但是我想find以'important'结尾的scp命令。 那么在这个reverse-i-search有没有办法查看所有以scp开头的命令,select合适的命令呢?

tar:添加当前目录下的所有文件和目录INCLUDING .svn等等

我尝试tar.gz一个目录并使用 tar -czf workspace.tar.gz * 得到的tar在子目录中包含.svn目录,但不包含在当前目录中(因为在传递给tar之前, *只扩展为“可见”文件 我尝试过了 tar -czf workspace.tar.gz . 相反,但后来我得到一个错误,因为'。 阅读时发生了变化: tar: ./workspace.tar.gz: file changed as we read it 有没有一个技巧,以便*匹配目录中的所有文件(包括点前缀)? (在Linux SLES-11(2.6.27.19)上使用bash

在退出脚本之前等待后台进程完成

在退出我的脚本(TCL / Bash)之前,如何确保所有的后台进程都已经完成了执行。 我正在考虑将所有的后台进程pid写入一个pid文件。 然后在结束pgrep pidfile,看看有没有进程在我退出前还在运行。 有没有更简单的方法来做到这一点? 有没有一个TCL具体的方式来做到这一点?

如何创build一个bash脚本来检查SSH连接?

我正在创build一个bash脚本,可以login远程机器并创build私钥和公钥。 我的问题是,远程机器不是很可靠,他们并不总是起来。 我需要一个bash脚本来检查SSH连接是否启动。 在实际创build密钥以备将来使用之前。

如何find基于端口的进程,并杀死他们呢?

根据端口号查找进程并全部杀死。 ps -efl | grep PORT_NUMBER | kill -9 process_found_previously 如何完成最后一列?