質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

0回答

462閲覧

vagrantfileのprovisionで呼出すshellから別のShellを呼び出せない

wkbiz

総合スコア152

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2022/01/10 06:44

よろしくお願いいたします。

 ```vagrantfile
config.vm.provision "shell" do |mainsh|
mainsh.path = "./shell/init.sh"
end

でinit.shを呼び出し実行。 これは一般的なものでエラーはありません。しかし、 ```bash #!/bin/bash -eu .... sh ./demo.sh 99 (99は仮に作った引数)

init.shの中で他のShellを呼び出すと、
default: sh: ./demo.sh: No such file or directory
と怒られてしまいます。

このようにならない為の方法はあるのでしょうか。
そもそも呼出すshellで他のShellは呼び出せない仕様なのでしょうか。ご教授いただけると幸いです。

解決策はないわけではありません。vagrantfile内で別の変数つまり
```vagrantfile
config.vm.provision "shell" do |mainsh|
mainsh.path = "./shell/init.sh"
end
config.vm.provision "shell" do |subsh|
subsh.path = "./shell/demo.sh"
end

とすれば動かしたいshellは動いてくれます。しかしこの書き方だと冗長的で、init.shでreturnした値をdemo.shに渡せません。 AnsibleやChef使えよっていう声が聞こえてきそうですが、できればvagrantだけで解決できないか?と思い質問させて頂きました。 よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/01/10 07:14

init.shdemo.sh が 同じ ./shell ディレクトリにあるのであれば、 sh ./shell/demo.sh 99 で動きませんか?
wkbiz

2022/01/10 08:55

コメントありがとうございます。 init.shとdemo.shは別階層です。 実際の構造は下記のようになっています。 vagrantfile └/shell   init.sh │└/inst   demo.sh
melian

2022/01/10 08:58

となりますと、 sh ./shell/inst/demo.sh 99 ではどうでしょうか。
wkbiz

2022/01/10 09:28

コメントありがとうございます。 そちらもやってみましたが default: sh: ./shell/inst/demo.sh: No such file or directory となってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問