我有一个名为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调用的,但我现在正在手动尝试。
答案 0 :(得分:1)
您是否尝试将./bin/...
更改为绝对路径?
另外,您提到在运行脚本之前导航到bin,似乎脚本希望从父目录运行。
答案 1 :(得分:0)
在最顶部添加sha-bang {#!/ bin / bash}行。 (你已经做过了)
使用chmod u + x scriptname使脚本可执行。 (你这样做了吗?)
将脚本放在/ usr / local / bin文件夹下。
之后,您应该能够运行该脚本。这通常是我在需要编写和运行一个小脚本时在CentOS / RHEL中所做的事情。你的剧本到底在做什么?建立文件夹结构?如果是这样,也可以使用PowerShell轻松完成。