シェバン以外に通訳を設定できますか? [閉鎖]

シェバン以外に通訳を設定できますか? [閉鎖]

別のスクリプト(rvm)をインポートするスクリプト(tmuxinatorで)を実行しています。 rvm は sh からのソーシングを明示的に許可しません。 tmuxinatorスクリプトのshebangが次のようなので、これが問題になるとは思いません。

#!/bin/bash

しかし、スクリプトからrvmを取得するためにrvm担当者が提案したコードを挿入すると、

if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  source "$HOME/.rvm/scripts/rvm"
fi

-わかりました。

sh: 6: [[: not found

なぜshを通訳者として使うのですか?私も #!/usr/bin/zsh (スクリプトを呼び出すインタラクティブシェルの $SHELL 値) と #!/usr/bin/env zsh を使用しましたが、同じ苦情が表示されます。 。

ベストアンサー1

RVMは/bin/shのコンテキストで実行されていますか?これがおそらくこのような困難を経験している理由でしょう。ソーススクリプトは親のインタプリタを継承します。望むより:http://ss64.com/bash/source.html

。 (ソースまたはドット演算子)

ファイル名パラメーターからコマンドを読み取り、実行します。現在のシェルコンテキスト

(強調は私のもの)

おすすめ記事