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

时间:2017-01-05 15:10:29

标签: bash powershell npm

我有一个名为bin的目录,其中有一个名为build-code的文件,文件类型显示为"文件"。

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

#!/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 \积累代码'不被视为内部或外部   命令,可操作程序或批处理文件。

和bash:

  

$ build-code
  bash:build-code:command not found

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

  1. 在最顶部添加sha-bang {#!/ bin / bash}行。 (你已经做过了)

  2. 使用chmod u + x scriptname使脚本可执行。 (你这样做了吗?)

  3. 将脚本放在/ usr / local / bin文件夹下。

  4. 之后,您应该能够运行该脚本。这通常是我在需要编写和运行一个小脚本时在CentOS / RHEL中所做的事情。你的剧本到底在做什么?建立文件夹结构?如果是这样,也可以使用PowerShell轻松完成。