>>284
知らんけどさぁ。そのコードだけ見て判断するなら
> rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
まずrbenvには普通はコマンドのフルパスが入る。
二番目の~/.rbenv/bin/rbenvはわかりやすく、そこにrbenvコマンドがあればそのパス
一番目は、rbenvコマンドをPATHから検索して見つかったものが入る。だから本来はフルパス
38行目の cd "${rbenv%/*}" からもフルパスが入ってるという前提で
rbenvコマンドがある前提でそのディレクトリに移動しようとしている。
もし本当に rbenv変数に rbenv という文字列が入るとしたら
おそらく rbenvがシェル関数の場合だろう。
rbenvというシェル関数は、実は rbenv を使用していると作られる。
正確には eval "$(rbenv init -)" の実行時に定義されている。
しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が
呼び出したrbenv-installerという子プロセスから見つかるはずがない。
この前提が崩れるとしたら、
1. rbenv-installer を . コマンド (または source コマンド)で呼び出している。
意図的にやらない限り、そうはならないし、やってるのだから気づくだろう。
そしてもう一つ。
2. rbenvシェル関数がexport -fされている場合だ。通常exportできるのは変数だけなのだが
bashの変な機能で関数もexportできて、それを子プロセス(当然bashに限る)から参照できてしまう。
envコマンドで環境変数一覧を表示してみれば、BASH_FUNC_rbenvという特殊な名前で
rbenvシェル関数のコードが環境変数に設定されてるのが見えないか?だとしたらそれが原因だ。
普通は関数をexportしてるはずがないんだが、どこかでなにかのついで全シェル関数をexportとかやってないか?
3. もしくはBASH_ENV環境変数を使ってないか?これはbash起動時に自動的に
シェルスクリプトを実行するための変数だ、そこでrbenvシェル関数を定義していたりしないか?
Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
287デフォルトの名無しさん (ワッチョイ 8b14-9KJh)
2020/03/24(火) 15:16:18.23ID:fj9Tix3R0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【W杯】日本はF組2位で3大会連続決勝T進出 1回戦で王国ブラジルと激突 スウェーデンと1-1ドロー ★8 [恐縮です★]
- 【サッカー/W杯】オーストラリア、2位で決勝T進出 パラグアイとスコアレスドロー パラグアイは勝ち点4の3位で他組の結果待ちに [THE FURYφ★]
- 【W杯】日本はF組2位で3大会連続決勝T進出 1回戦で王国ブラジルと激突 スウェーデンと1-1ドロー ★9 [恐縮です★]
- 地 震 [KingFisherは魚じゃないよ★]
- 【東京】ポルシェで交差点を約100キロで右折し多重事故 運転の中国籍の男を逮捕 文京区 [ぐれ★]
- 【SNS】はま寿司“洗剤男が”釈放→再び寿司店で動画投稿「全然反省してない」騒然、賠償金を本人は「払えない」 [靄々★]
- 【高市悲報】ウクライナ大統領を僭称するゼレンスキー「あと40日以内にロシアを敗北に追い込んでやる😤」 [616817505]
- 【悲報】高市、母親が警察官だった設定も嘘だった疑惑が浮上🫪これもう恐怖だろ… [359965264]
- 【高市解散】サナエトークン補償に文句言ってる奴どう思う?溝口「楽して儲けようとした奴らだろ」 バッシングへ(自民党コイン) [169920436]
- マッスル北村💪😅💪🏡
- 【悲報】高市「私の過去を知ってるもんは全部死んでくれへんかなあ、喋るなよ🫪」インタビュー記事より😨 [359965264]
- 同じ部隊の部下3人にパワハラ。頭をスリッパでたたいたり、顔を殴ったりした自衛官の50代空曹長が懲戒処分に [663766621]