私たちはOpen Shiftプラットフォームでコンテナを実行します。アプリケーションポッドが正しく実行されています。次のコマンドを使用してポッドにログインできます。
oc exec -it <podname> -- /bin/bash
返品tried /bin/sh
ログインしたら、特定のフォルダ(/opt/scripts)から利用可能なスクリプトを実行しようとしています。
実行するとsh script
機能します。投げずscript
に走るとsh
command not found
私たちが持っているスクリプトでは#!bin/ksh
(bashとshで試しました)
プレフィックスscript
なしで実行する方法sh
修正する: コンテナ内のシーンをシミュレートしてください。
以下はコンテナにインストールされたシェルです。
sh-4.4$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
これはスクリプトです。最初の行が更新されました。
sh-4.4$ more tRun
#!/bin/sh
ただプレフィックスsh
または実行bash
sh-4.4$ tRun
sh: tRun: command not found
sh-4.4$ sh tRun
JAVA_HOME is not set. Unexpected results may occur.
Set JAVA_HOME to the directory of your local JDK to avoid this message.
Please enter aguments:
^C
sh-4.4$ bash tRun
JAVA_HOME is not set. Unexpected results may occur.
Set JAVA_HOME to the directory of your local JDK to avoid this message.
Please enter aguments:
^C
ベストアンサー1
「スタンドアロン」を実行するには、スクリプトでshebangに提供されているコマンドを使用できる必要があります。この場合、コンテナイメージにインストールする必要が/bin/ksh
あります。ksh
スクリプトが実際に正しく機能している場合は、sh
shebangを次のように変更できます#!/bin/sh
(またはより良い方法は#!/bin/sh -
)。