私は尋ねたStackOverflowに関するこの質問昨日、私はLinuxの知識が不足して、それを混乱させ、一般的に人々の時間を無駄にしました。 今より良いことができることを願っています。私はこの問題を解決するためにさまざまな方法を試しましたが、結局ここで人々が私に実際に必要なものが何であるかを混乱させました。 ユーザーがパラメータを渡すかどうかに応じて、別のサブメニュースクリプトを呼び出すスクリプトを作成する必要があります。引数が "help"の場合は、画面を消去し、ユーザーにhelpコマンドの使用方法を知らせる短いメッセージを表示する必要があります。それ以外の場合、スクリプトはそのサブメニューを表示します。 他のパラメータは「ファイル」「テキスト」「ステータス」であり、使用される場合はエキスパートスクリプトを呼び出し、それ以外の場合はユーザーメニューから初心者スクリプトを呼び出します。 私は、ユーザーが特定のパラメータを渡したかどうかに応じて実行したいfileExpert、fileNovice、textExpert、textNoviceなどの名前の合計6つの異なるスクリプトプレースホルダーを持つモデルを作成しました。 これまでの研究を通じて、同様の条件付きテストを設定する必要があることを知っていますが、 if $>0 then go into expert or if there are no arguments execute novice それ以上には完全に迷っています。 これは完全に話すことができない音のように聞こえず、ある程度真実があることを願っています。
私のスクリプトにはという関数がありますmessages。 Linux Mintで書いて問題なく実行しましたが、Debianバスターステーションに移動したときの機能は/usr/bin/messages。 以下を呼び出す起動スクリプトがありますmessages。 起動スクリプト # call to messages script
. messages
情報 messages() {
# reformat the arguments and return them
}
後でスクリプトを開始 messages "This is a message"
投げるもの ./startup_script: line 35: .: /usr/bin/messages: cannot execute binary file
messages: could not open mailbox `/path/to/my/script/': No such file or directory
/usr/bin/messagesだから私の代わりに呼び出される関数に関連するエラーがたくさんあります。 を追加した後、関連するtype messages "This is a message"出力は次のようになります。 messages is /usr/bin/messages
関数の名前を変更することもできますが、この状況を処理するより良い方法があるかもしれません。 システムバイナリを無視し、独自の機能を使用するようにスクリプトにどのように指示しますか? ¹この関数は複数のスクリプトで複数回呼び出されるため、名前を変更するだけでは最も簡単なオプションではありません。