2017-01-05 23 views
0

binという名前のディレクトリにbuild-codeというファイルがあり、ファイルの種類が「ファイル」と表示されています。Bash(またはPowerShellスクリプトが失敗する) - なぜですか?

メモ帳で開く場合は、コードは次のようになります。

#!/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 

私はbuild-codebinとタイピングに移動して、このファイルを実行しようとすると、私は次のようなエラー(PowerShellの)を取得:

。\ bin \ build-code 'は、内部または外部 コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。

とBash:

$ビルドコード
のbash:ビルドコード:私はPowerShellとGitBashの両方でこれを試してみました

をコマンドが見つかりません。私はいずれかのためのscruptsを書くことに事実上(これはサードパーティのコードです)経験がありません。何がありますか?これは無効なスクリプトですか、何か間違っていますか?

補足として、set -eとは何ですか?いくつかのvarを設定するようだが、私は理由が分からない。

P.S.これは最初はnpmから呼び出されたので、npmタグはリストにありますが、私は手動で現在試しています。

+1

binディレクトリにある場合は、binの下に別のbinディレクトリがない限り、残りのパスはすべて疑わしいと思われます。 。 。スクリプトは実行可能ですか?そして、 'set -e'は、コマンドが0以外のコードで終了した場合にスクリプトを終了させます。変数ではなくbashオプションを設定しています –

+0

私はそれに感謝します。 – VSO

+1

bashの '。/ build-code'を試してください。 –

答えて

1

./bin/...を絶対パスに変更しようとしましたか?

また、スクリプトを実行する前にbinにナビゲートして、スクリプトが親ディレクトリから実行されることを期待しているようだと述べました。

+0

それは本当に私がやっているエラーを引き起こすだろうか?私はEricが提案したように他のスクリプトへのパスをチェックしていますが、 'build-code'スクリプトが有効であれば失敗してはならないようです。 – VSO

+1

あなたが 'bin'ディレクトリ内にいても、' PATH'環境変数の一部ではないので、./build-codeを使って呼び出す必要があります –

0
  1. sha-bang {#!/ bin/bash}行を一番上に追加します。 (これはあなたが一種だ)

  2. chmod u + x scriptnameを使用すると、スクリプトは実行可能になります。 (あなたはこれをしましたか?)

  3. /usr/local/binフォルダにスクリプトを置きます。

その後、スクリプトを実行できるはずです。これは通常、小さなスクリプトを作成して実行する必要があるときにCentOS/RHELで行うことです。あなたのスクリプトは正確に何をしていますか?フォルダ構造を構築する?もしそうなら、これもPowerShellでも簡単に行うことができます。