如何在windows下运行bash命令
bash是运行在linux系统中的命令,windows中是无法直接运行的。下面介绍几种可以在windows运行bash命令的方式,对于比较复杂的命令,可以使用shell脚本来运行。
在前端中通常是部署代码的时候会接触到shell脚本。
# git bash
这个是最常见的,且成本较小。
很简单,如果我们安装了Git for Windows
,那么在任意文件夹右键,选择Git Bash Here
,即可使用bash命令,或者运行shell文件。
直接输入
echo hello
或者在package.json中,设置如下:
// package.json { "scripts": { "bash":"bash worker.sh", "bashone":"bash -c \"echo hello\"" } }
1
2
3
4
5
6
7# worker.sh 将多个命令集中处理 git status git pull echo 'hi'
1
2
3
4
# child_process或shelljs
这种方式是在基础开发中会遇到,比如制作工程的脚手架时需要和命令行打交道,node可以使用相关api来支持脚本命令。这里不多描述,参考官网即可。
# Cygwin
git bash还需要另外打开命令行窗口,有没有办法直接在vscode的命令行终端直接使用呢。先看看正常情况下,它报什么错。
'bash' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
2
通常提示这个是windows系统没有配置环境变量。开始撸它。
-
安装过程参考安装cygwin教程 (opens new window),其中安装组件包我选择安装了
binutils
、gcc-core
、gdb
。安装成功后,在C:\cygwin64\bin
下有bash.exe文件,试试是否可以运行bash命令。C:\cygwin64\bin\bash.exe -c "echo hi"
1 配置环境变量
接下来去配置环境变量,操作路径为:
我的电脑-属性-高级系统设置-环境变量,选择Path-编辑-新建-
C:\cygwin64\bin
即可。基本所有需要设置环境变量的方法都是这个步骤。
接下来可以愉快地使用bash命令了。
# 其他
还有Win10的linux子系统,Ubuntu,使用虚拟机等等,[参考(https://blog.csdn.net/linux_hua130/article/details/93133295),就不详说了。
# 踩坑
- $'\r': 未找到命令
是因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令,所以,解决问题之道,就是把dos文件格式转换为unix格式。
解决办法:将该脚本的格式由CRLF切换为LF即可。