当前位置:  开发笔记 > 编程语言 > 正文

将基于窗口斜杠(/)的参数从bash脚本传递给程序

如何解决《将基于窗口斜杠(/)的参数从bash脚本传递给程序》经验,为你挑选了2个好方法。

我正在尝试从我的bash脚本运行以下内容.(通过msysgit安装bash)

taskkill /IM ssh-agent.exe

我从屏幕上得到的输出taskkill是:

ERROR: Invalid argument/option - 'C:/Program Files/Git/IM'.
Type "TASKKILL /?" for usage.

可执行程序正在运行,但/IM正在扩展,无论我尝试做什么来逃避它...


我已经尝试使用\/IM但是然后它发送\/IM而没有逃避斜线,我尝试了几种不同的方式来运行它通过eval,cmd/c start等...但它们似乎都有问题.我也试过set -o noglob,这也没用.既没有做过$'\057/'IM类似的尝试......



1> M. Mimpen..:

由于我的评论实际上提供了答案,我将发布它.

如何将前锋斜线转移到另一个前锋斜线上//.当我执行此命令时,它在我转义/r参数时适用于我: start C:/folder/beep 2000 250 100 //r 3

资料来源:http://oldwiki.mingw.org/index.php/switches%20with%20forward%20slashes

适用于Windows的极简GNU

在MSYS下传递带正斜杠的开关

在MSYS中,命令行参数"/ c"被解释为C:驱动器,因此要传递以正斜杠开头的任何参数,您需要使用两个正斜杠.例如,要在MSYS中使用此命令:

cmd /c echo foo

使用:

cmd //c echo foo

如果你需要在shell脚本中使用windows风格的路径,你可以这样做

x=$(cd /unix/path && cmd //c cd)

x var现在包含/ unix/path的windows等效路径



2> Tracker1..:

经过数小时的搜索(例如“禁用bash文件扩展”)之类的搜索,我通过专门搜索要"bash" "windows" taskkill尝试运行的可执行文件找到了它,然后我找到了这个答案,该答案最终对我有用。

cmd " /c taskkill /F /IM ssh-agent.exe"


您不能简单地通过另一个斜杠(例如//)来逃脱斜杠吗?似乎对我有用,来源:http://oldwiki.mingw.org/index.php/switches%20with%20forward%20slashes
推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有