tl; dr版本问题:如何使bash脚本/命令监听文件的更改,然后输出特定Bash命令的结果? 长版 Real Scenario:我正在重构一个Perl模块( my_module.pm ),我有一个与该模块相关的testing文件( my_module.t )。 我想将控制台放在一个屏幕上,每当我保存pm文件(在另一个屏幕上使用编辑器),控制台将运行prove -v my_module.t 。 背景:我有当前目录中的所有权限,如果需要,我可以升级到sudo 。 我不介意如果实现类似setInterval因为它仅用于开发目的。 只要我有一种方法clearInterval和脚本不产生永无止境的输出,当文件没有改变,那么它是好的:) 示例scheme:假设bash脚本命名为hot并且每当给定的文件发生更改时,都会运行ls -l source.txt 。 所以当我运行hot source.txt ,脚本可能会或可能不会运行ls ….一次。 然后,当我修改source.txt ,运行hot的控制台将再次运行ls ,我应该看到source.txt的新文件大小(以及其他信息)。 如果我运行hot something.txt ,当source.txt被修改时,它不应该运行ls 。 即使source.txt没有被修改,脚本也会在我修改something.txt时触发ls 。 我想这是可能的一个while循环,但我很难跟踪文件的变化(最好跟踪一个间隔,以减less资源)。 任何帮助将不胜感激!
我正在通过git bash在我的Windows机器上使用Docker。 由于git bash没有loggingclosures时的当前状态,因此每次启动一个新的terminal时,我都需要设置一些与Docker相关的环境variables。 我想在启动之前运行的命令是: eval $(docker-machine env) 或者更好的是,有一个包括其他逻辑的bash脚本。 例如,如果docker机没有启动,首先启动机器等。有没有办法自动运行bash命令或脚本之前打开一个新的git bash窗口?
我已经下载了CentOS 7最小的ISO映像,并在我的Windows 8.1机器上通过Oracle VM VirtualBox创build了一个virtual machine机。 我不想使用VirtualBoxshell。 我想要使用Git Bash作为接口。 Virtual Machine必须正在运行,但是如何使用Git Bash作为接口连接virtual machine ? 是否有任何命令: ssh username@localhost在Git Bash中使用以便将我连接到Virtual Machine ? 谢谢!
我是Git的新手,并且一直遵循git-scm网站上的教程,我在Git Bash的input行中input了cmd ,所有的颜色都消失了,看起来像正常的命令提示符。 当我inputgit status的inputgit status ,它会返回信息。 但是,当我启动正常的命令提示符并移动到工作目录并键入“git status”时, git不会被识别为命令。 我的问题是,在Git Bash中inputcmd实际上是干什么的? 如果它将窗口变成正常的命令提示符,那么为什么在正常的命令提示符下inputgit status不起作用? (我已经在这里读到了答案,如果有人解释了最重要的答案的步骤中发生了什么,如果它与这个问题有关)
我有大约150个目录,我想重命名(和提交)在一个git回购。 path类似于; /src/app/testing/linux/testindexscreen_home/image.png /src/app/testing/osx/testindexscreen_home/image.png /src/app/testing/win/testindexscreen_home/image.png 所以我想运行mv ,然后在与indexscreen_匹配的所有path上进行commit ,以删除该部分string。 我在一个窗口框中,使用git bash ,此刻有find& mv命令试图将文件夹移入本身。 我不确定你如何删除匹配的string; find . -name '*indexscreen_*' -exec sh -c 'file={}; git mv $file ${file/"*indexscreen_*"/}' \; 包括承诺包括我认为需要; find . -name '*indexscreen_*' -exec sh -c 'file={}; git mv $file ${file/"*indexscreen_*"/}; git commit -m "Renamed $file"' \; 所以我想让bash命令把这些path转到; /src/app/testing/linux/testhome/image.png /src/app/testing/osx/testhome/image.png /src/app/testing/win/testhome/image.png 并提交消息,如“重命名testhome”
我想在我的GitBash(Windows 7)中运行领class 。 我将它安装为Windows版Heroku-Toolbelt的一部分,并将C:\ Program Files(x86)\ Heroku \ ruby-1.9.3 \ bin添加到path中。 它在cmd中工作 ,但是扰乱了我的工作stream程。 我得到的错误… $ foreman sh.exe": /c/PROGRA~2/Heroku/RUBY-1~1.3/bin/foreman: "C:/Program: bad interpreter : No such file or directory 我发现的问题是在工头内的HashBang线… #!"C:/Program Files (x86)/Heroku/ruby-1.9.3/bin/ruby.exe" # # This file was generated by RubyGems. # # The application 'foreman' is installed as part of a gem, and # this file […]
在过去的几天里,我有一个在git bash中运行的问题。 我试过了,尝试了一切,但没有运气。 这是我的错误: 如果你注意到有一个C:\ c \,我被告知它的cygwin语法。 我从来没有听说过。 Npm已经与我已经下载的所有其他包一起工作,现在它只是不会工作。 奇怪的是,同样的人告诉我,这是cygwin的语法告诉我在Windows命令提示符尝试它,很奇怪,它的工作。 我如何改变path,所以它没有c \和它只是C:\ 这是我迄今见过的最奇怪的事情,但任何帮助都将不胜感激。 谢谢。
所以我正在运行一个脚本,调用: docker-compose run –rm web sh /data/bin/install_test_db.sh 它似乎在ubuntu上运行它时工作正常,但是当我在Windows上使用Git Bash运行它我得到这个错误: sh: 0: Can't open C:/Program Files/Git/data/bin/install_test_db.sh 这似乎是试图在我的机器上运行脚本,而不是我试图从中调用它的实际容器。 任何想法,为什么发生这种情况?
我正在运行Windows 7的机器上安装了msysgit,git Bash,tortoisegit和posh-git。 我们公司有一个以前在https上运行的git服务器。 然后,有一段时间它有https和ssh。 现在只有ssh。 所有的东西在https上都没有问题。 我生成并安装了所有我的密钥没有问题。 我可以通过乌龟推/拉/无任何问题。 但是,我不能再在git BASH或powershell + posh-git中使用命令行。 我认为部分原因是因为我们不使用端口22,而是增加安全性的自定义端口。 请注意,在下面的命令中已经更改了主机名和端口号来保护无辜者。 我试图推/拉下面的错误,但我显示命令只是为了testingSSH服务器,以显示ssh是问题(我相信)。 如果我不指定端口,它会find服务器并尝试连接 – 但是由于它默认为端口22,所以我得到一个错误,如下所示: C:\gitpath\design [master]> ssh ssh://git@dev.zzz.us ssh: connect to host dev.zzz.us port 22: Bad file number 但是,如果我指定端口,则无法find主机名: C:\gitpath\design [master]> ssh ssh://git@dev.zzz.us:9092/ ssh.exe": Could not resolve hostname dev.zzz.us:9092/: no address associated with name 我看过类似的post,他们都指出需要包含协议(ssh://)来防止这个错误。 正如你所看到的,即使有协议,我也会遇到这个错误。 我也尝试过和没有结尾“/” – 相同的结果。 是否还有其他与我失踪的语法?
我怎样才能得到一个按datesorting可以达到的绝对一切清单? 正常提交,存储,放置存储,删除分支提交 – 所有尚未被清理的东西。 我问,因为我需要find一个特定的提交(或藏匿),我不记得除了它必须添加的date。 因为我从来没有运行git gc ,我认为它应该仍然可用的地方。 我也需要查看每个提交的时间戳,因为我将不得不使用它来缩小search范围,只提交我想要的date。 编辑:如果不清楚,我寻找悬挂提交和除了正常的挂起的窗口是至关重要的。 像我如何根据作者的时间戳做出git日志顺序? 不要解决这个问题。