Bash(或PowerShell脚本失败)-为什么?

Bash(或PowerShell脚本失败)-为什么?,bash,powershell,npm,Bash,Powershell,Npm,我有一个名为bin的目录,其中有一个名为buildcode的文件,文件类型显示为“file” 使用记事本打开时,代码如下所示: #!/usr/bin/env bash set -e rm -rf build mkdir build cp jspm_packages/system.src.js build/system.src.js cp jspm_packages/system-polyfills.src.js build/system-polyfills.src.js ./bin/bui

我有一个名为
bin
的目录,其中有一个名为
buildcode
的文件,文件类型显示为“file”

使用记事本打开时,代码如下所示:

#!/usr/bin/env bash
set -e

rm -rf build
mkdir build

cp jspm_packages/system.src.js build/system.src.js
cp jspm_packages/system-polyfills.src.js build/system-polyfills.src.js

./bin/build-root
./bin/build-common-deps

./bin/build-home
./bin/build-navbar
./bin/build-angular1
./bin/build-react -p
./bin/build-angular2
./bin/build-vue
./bin/build-svelte
./bin/build-preact
./bin/build-vanillajs
当我试图通过导航到
bin
并键入
build code
来运行此文件时,我收到以下错误(PowerShell):

“.\bin\build code”未被识别为内部或外部代码 命令、可操作程序或批处理文件

和bash:

$build代码
bash:生成代码:未找到命令

我在PowerShell和GitBash中都试过。我几乎没有为这两种代码编写Scruts的经验(这是第三方代码)。有什么好处?这是一个无效的脚本,还是我做错了什么

作为旁注,
set-e
在做什么?似乎设置了一些变量,但我不知道为什么


p.S.npm标签在列表中,因为它最初是从npm调用的,但我现在正在手动尝试

您是否尝试将
/bin/…
更改为绝对路径

另外,您提到在运行脚本之前导航到bin,似乎脚本希望从父目录运行

  • 在最顶端添加shabang{#!/bin/bash}行(你已经做了一些)

  • 使用chmod u+x scriptname使脚本可执行。(是你干的吗?)

  • 将脚本放在/usr/local/bin文件夹下


  • 之后,您应该能够运行脚本。这通常是我在CentOS/RHEL中需要编写和运行小脚本时所做的。你的剧本到底在做什么?构建文件夹结构?如果是这样的话,使用PowerShell也可以很容易地做到这一点。

    如果您在bin目录中,所有其他路径看起来都很可疑,除非您在bin下有另一个bin目录。你的脚本是可执行的吗?而
    set-e
    将导致脚本退出,如果任何命令退出时代码不是0。它设置了一个bash选项,而不是一个变量,谢谢。请在bash中尝试
    /build code
    ,这是一个bash脚本,所以您可能需要从bash调用构建(Cygwin?)。否则,您需要将它们重写为批处理脚本(扩展名为.bat或.cmd)。@H_square成功了。另外,Angsar-是的,必须在GitBash中运行它。这真的会导致我得到的错误吗?我正在按照Eric的建议检查指向其他脚本的路径,但如果“构建代码”脚本有效,它似乎不会失败。即使您在
    bin
    目录中,也需要使用./build code调用它,因为它不是
    PATH
    环境变量的一部分