草庐IT

windows - Windows 的替代 bash/或在 cygwin 上帮助完成特定任务

coder 2024-06-05 原文

我的目标:创建一套脚本来执行一些常见的系统任务,其中包括这些

  • 复制/移动/列出/搜索/grep 文件
  • 观察/启动/停止进程
  • 通过 sqlplus 对 Oracle 运行查询

我已经习惯了使用 Cygwin/bash 来缓解我的工作生活,坦率地说,我不想离开 bash 语言并开始学习 PowerShell,例如 - 所以我开始寻找一种运行方式Windows 上的 bash 脚本,...最好是 Cygwin 的替代品。

事实是我仍然对 Cygwin 安装不满意,事实上没有简单的解决方法,它或多或少是针对专家用户的,并且在安装过程中可能会弹出很多东西安装。我的意思是。我现在想做的是编写一套脚本,针对那些不如我专业的人(而且我绝不是真正的专家)——在大多数情况下,某种管理员不想知道脚本详细信息。

我想这个用户也希望能够在另一台机器上运行这些脚本,我希望能够向他/她解释如何去做,而不只是说,调用支持,而且,我, 最终(这样我们就可以在另一台机器上安装 cygwin 等等)

我尝试了 MinGW(msys),但它也需要手动步骤来设置 - 我的意思是,这些手动步骤已经成为这些 Windows 端口中的事实上的标准(抱歉,也许我有吹牛的心情)。 win-bash 看起来像是一个解决方案,但我最终也把它扔掉了,因为旧的 bash 版本,而且它无法做我在 cygwin 中能做的事情——特别是

  • 这里是文档
  • 诸如“cmd/C dir *”之类的东西(不知道为什么)- 是的,我执行 cmd/C dir 以防我在某种包含数千个文件的共享网络文件夹中,而 ls 速度明显较慢比目录

最后我的问题:

  • 我注定要使用 PowerShell 吗?我想我会,不情愿地,如果我必须的话
  • 是否有一个简单的预先打包的“ slim ”cygwin 安装..或者,可移植的 cygwin,甚至更好?在 sourceforge 上有一个 cygwin 可移植项目,但它并不是不需要那些手动步骤,显然 - 是否有办法自动执行这些步骤?如果有,我想知道为什么还没有人这样做? - 然后,是否可以使用“bash somescript.sh”等简单命令从 Windows 命令提示符调用 bash 脚本?

感谢您的关注。

最佳答案

作为mentioned here , Cygwin 安装完全可以编写脚本和参数化,以静默和自动模式运行。

如果您定义了所需的 cygwin 软件包的最小列表,只需使用一个小的 .bat 脚本来调用 cygmin 安装程序可执行文件,如下所示

setup.exe --packages=list_of_packages_you_need --quiet-mode

关于windows - Windows 的替代 bash/或在 cygwin 上帮助完成特定任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6112701/

有关windows - Windows 的替代 bash/或在 cygwin 上帮助完成特定任务的更多相关文章

  1. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  3. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  4. ruby - 如何使用 RSpec::Core::RakeTask 创建 RSpec Rake 任务? - 2

    如何使用RSpec::Core::RakeTask初始化RSpecRake任务?require'rspec/core/rake_task'RSpec::Core::RakeTask.newdo|t|#whatdoIputinhere?endInitialize函数记录在http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method没有很好的记录;它只是说:-(RakeTask)initialize(*args,&task_block)AnewinstanceofRake

  5. ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式? - 2

    我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"

  6. ruby - 有人可以帮助解释类创建的 post_initialize 回调吗 (Sandi Metz) - 2

    我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法

  7. ruby-on-rails - 更好的替代方法 try( :output). try( :data). try( :name)? - 2

    “输出”是一个序列化的OpenStruct。定义标题try(:output).try(:data).try(:title)结束什么会更好?:) 最佳答案 或者只是这样:deftitleoutput.data.titlerescuenilend 关于ruby-on-rails-更好的替代方法try(:output).try(:data).try(:name)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  8. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  9. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  10. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

随机推荐