20個程度のコマンドがありますが、すべてUnixシェルに送信して結果をコピーする必要がありますが、方法がわかりません。
モバイルネットワーク管理に接続されたアプレットなので、どのシェルがあるのかわかりません。このアプレットを介して行を介してコマンドを送信し、悲鳴を上げて結果を受け取ることができるため、スクリプトを使用してコマンドを送信することはできません。
コマンド1- サーバーに接続します。
コマンド1が完了するまで待ちます。
コマンド2- 1番サーバーのすべての情報更新完了
待つ。
コマンド3。いくつかのパラメータを取得します。
...そしてさらに多くのコマンドがあります。
私試験を終えたそしてcmd1 | cmd2 | cmd3
そして cmd1 & cmd2 & cmd3
そしてcmd1;cmd2
問題は、cmd1
RNC(ネットワーク要素)に接続されているが、cmd2
理解されるまでに約15秒ほどかかるという点だ。ただし、最初のコマンドにのみ適用されます。これを実行する方法についての手がかりはありますか?
答え1
通常はcmd1;cmd2;cmd3;cmd4
(1行に書きたい場合)、またはcmd1 && cmd2 && cmd3 && cmd4
cmd2が失敗したときにcmd3を実行したくない場合です。
あるいは、;
1行に1つのコマンドのみを作成することもできます。
cmd1
cmd2
cmd3
cmd4
コマンドをバックグラウンドで並列に実行するには、次を使用することもできます。
cmd1 &
cmd2 &
cmd3 &
cmd4 &
wait # for cmd1-4 to finish
これらの方法の1つをシェルスクリプトに入れることができます。シェルスクリプトに書き込む内容は、実際のシェル自体に書き込むものとほとんど区別できません。
答え2
sleep
環境が許可している場合は、これを調べることもできます。全体の順序は次のとおりですcmd1 && sleep 10s && cmd2
。
これは関連しています睡眠のためのマニュアルページ。
答え3
次のように順番に実行されるコマンドを含むファイルであるスクリプトを使用します。
#!/bin/sh
command-01
command-02
...
command-20
最初の行(shebang)は、次のコマンド()を実行して/bin/sh
ファイルを実行可能にしてchmod u+x your-little-script
から実行できることを示します./my-little-script
。これを行うと、1つのステップも見逃せません ;-)
完全なプログラミング言語を提供するシェルのドキュメントをお読みください。bash(1)
これが利用可能であることを確認し、それ以外の場合はKornシェルを確認してくださいksh(1)
。これは、スクリプトから(または対話的に)制御フローを制御するのに役立つ多くの機能を提供します。
答え4
expect
ローカルコンピュータで同様のコマンドを実行して、転送cmd1
する前に転送が完了するのを待つことができますcmd2
。正しいコマンド期待スクリプトを作成するには、合理的な待ち時間またはコマンドが完了したことを示す特定の出力を計算する必要があります。
もちろん、cmd1; cmd2; cmd3; cmd4
命令内では命令が順次実行される。