我在windows上使用git-bash。
有没有办法让它在不输入文件扩展名的情况下运行Windows批处理(.cmd)?
关于* .sh文件的相同问题。我更喜欢将bash脚本放入.sh中,以便在浏览器中区分它们。
PS。不欢迎没有扩展名的别名或代理脚本。
希望有一些极客可以做到这一点。所以,还在寻找答案......
答案 0 :(得分:2)
你可以使用任何bash(cmder,git-bash,ms bash,cygwin,gnu-utilities ......),即使存储为.exe
,也可以使用任何没有扩展名的unix命令。
注意CR / LF,并在每个shell脚本创建时使用dos2unix,以防止误解行结尾。
如果没有扩展程序,您将无法使用.sh
文件...但要为每个脚本创建别名:
$ alias myscript="/usr/local/bin/myscript.sh"
将它们放在你的〜/ .bashrc
中答案 1 :(得分:1)
首先关于文件扩展名的一些内容:
文件扩展名是指定为后缀的标识符 计算机文件的名称。扩展名表示特征 文件内容或其预期用途。通常是文件扩展名 以文件名分隔的句号(句点),但在某些文件名中 系统用空格分隔。
某些文件系统将文件扩展名实现为 文件系统本身可能会限制文件系统的长度和格式 扩展,而其他人将文件扩展名视为一部分 文件名无特殊区别。
类UNIX操作系统的文件系统(与DOS / Windows相对)不会分离 来自文件名其余部分的扩展元数据。点字符 只是主文件名中的另一个字符,文件名可以有 多个扩展,通常表示嵌套转换,......
关于您的shell脚本:
所以基本上在Unix文件扩展名中并不重要/不强制,所以你可以直接省略它们。如果出于任何原因想要保留它们(我相信你应该这样做),那么你可以为它们定义一个别名。 (参考https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias)
您还必须牢记在Unix和Windows之间存在差异的EOL
字符('\n'
vs '\r\n'
。
关于你的windows批处理,你不能直接在类似Unix的环境中运行它们,这样你就无法从你的git bash同时运行它们,除非你使用GH4W
之类的工具({ {3}})或使用git-cmd.bat
(github generate ssh key on windows)
答案 2 :(得分:0)
也许我已经找到了需要一些额外编码的解决方案。您可以尝试重写代码,而不是在键入不存在的命令时侮辱用户,而是通过添加'.sh'或'.cmd'来执行命令。
GitGub:insult-linux-unix-bash-user-when-typing-wrong-command
还要搜索command_not_found_handle。这在大多数Linux系统上都可用,并且可能适用于git-bash。