回答:
shデフォルトのBourne互換シェル(通常はbashまたはdash)
sys-snap.shsh実行するコマンドを含むシェルスクリプトです。あなたがそのコンテンツを投稿しないので、私はその名前から、それが何をするかを推測することができるだけです。私はスクリプトが始まる場合、現在のすべてのプロセス、現在のメモリ使用量、データベースの状況などのログ・ファイルを作成し、同じファイル名でCPanelのに関連するスクリプト、見つけることができますシェバング行(#!/bin/shまたは同様に)、あなたはそれが実行することができますchmod +x sys-snap.shし、使用して直接起動./sys-snap.sh、それは現在のディレクトリにある場合。
では&、プロセスがバックグラウンドで起動するので、あなたは、シェルを使用し続けることができ、スクリプトが終了するまで待つ必要はありません。忘れた場合は、現在実行中のプロセスを停止Ctrl-Zして、バックグラウンドでbg(またはフォアグラウンドでfg)続行 できます。詳細については、ジョブ制御を参照してください
sh通常のみ、bashまたはdashLinuxベースのシステム(または最近のOS / X)で。BSDでは、通常Ash(dashはNetBSD shに基づいており、Almquist Shellに基づいています)の別のバリアントまたはpdksh派生物です。市販のUnicesでは、通常はksh88です。
&れ、バックグラウンドで起動された場合、新しいシェルプロンプトのみが表示されます。
&&は単一のアンパサンドとは異なり&ますか?
これはjob controlunix として知られています。&バックグラウンドでコマンドを置くためにシェルを通知します。これは、sys-snap.shコマンドを実行し続けますが、シェルに戻り、並列コマンドの実行を継続できることを意味します。
jobsコマンドで現在実行中のジョブのリストを表示できます。コマンドを使用して、コマンドに戻る(「フォアグラウンド」にする)ことができfgます。どのバックあなたは、プロンプトが表示されませんし、あなたが発行する必要があり状態にコマンドを引っ張るCtrl- Cために殺すのプロセスを。ただし、そのプロセスを中断(一時停止)して、Ctrl-を発行できZます。これは一時停止sys-snap.shし、プロンプトに戻ります。あなたはそれは(あなたがそれを発行したかのような背景できると&して)bgコマンド、およびそれがされます再開、そこから実行している状態一時停止していますCtrl- Zに入れていました。
一度に複数のジョブを持つことができることに注意してください(で示されているようにjobs):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
あなたは自分のジョブ番号を使用してそれらを背景と前景ができ、%1なりますsys-snap.shと%2なりますanother-script.sh。引数を使用するfgかbg、引数を使用しない場合+、jobs上記の出力でマークされたジョブに対してコマンドが実行されます。
fg %1
バックグラウンドにsys-snap.sh残したまま、フォアグラウンドに戻りanother-script.shます。
あなたが発行できるCtrl- Cとそれらを前面にせずにジョブを実行する一連killのコマンドを、kill %1同等のものをお送りしますCtrl- Cにsys-snap.sh。
bashシェルを使用している場合、man bashコマンドには「JOB CONTROL」という見出しのセクションの下に詳細なセクションがあります。
の名前についてはsys-snap.sh、Unixではファイル名は任意です(ダイナミックローダーファイルなどの例外がいくつかあります)。彼らのような他のコマンドを呼び出す、それらをシェルスクリプトとして実行するために特定のファイルextentionsを持っているための要件はないperlか、php通常、明確さを提供するために使用されるなど、このインスタンスでは、それがあることを、.shBourneシェルを使用してシェルスクリプト/bin/sh。
sys-snap.sh(lessコマンドのようなもので内容を見るとき)の機能部分はShebangです。最初の行には、おそらく次のいずれかがあります。
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
または類似。基本的な用語では、#!(などの/bin/sh)コマンドが実行され、スクリプトファイルの残りの内容が一度に1行ずつフィードされます。chmodコマンドとして実行できるように、ファイルも実行可能に設定する必要があることに注意してください。アクセス許可が設定されていない場合、shebangエラーが発生するため、効果はありません。
bash: sys-snap.sh: command not found
または、明示的なパス./sys-snap.sh(.現在の作業ディレクトリを意味する)で実行した場合、次のようになります。
bash: ./sys-snap.sh: Permission denied
他の代替方法は、実行許可なしでそれを残し、明示的に/ bin / shに実行を依頼することです:
/bin/sh sys-snap.sh &
nohupは、追加することもあります。これは&、プロセスを開始するためにしばしば使用され、プロセスを強制終了せずにプロセスを起動したシェルを強制終了できるためです。
jobsですか?その最初のコマンドの場合、それは常に空を返しますか?
&コマンドの最後で使用するのは、コマンドまたはスクリプトがバックグラウンドで実行されているがに書き込みを行うことを意味するstdin(stdoutまたはではなくstderr)デタッチするだけstdoutでありCtrl + c、出力を停止しないが、コマンドを入力します。これは、バックグラウンドプロセスが書き込みをstdout行っているが、フォアグラウンドで実行されていないため停止できないためです。詳細はこちら。
shシェルです。どのシェルがシステムに正確に依存します。bash標準シェルとして使用するシステムの例:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 13 16:12 /bin/sh -> bash
$ sh --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
sys-snap.sh何らかの種類のシェルスクリプトにsh sys-snap.shなるため、シェルスクリプトを実行します。
&シェルプロセスをバックグラウンドで実行します。&それなしでは、スクリプトが終了するまでフォアグラウンドに留まります。スクリプトはどちらの方法でも機能します。スクリプトが終了するのを待つかどうか、またはそれ以降のコマンドを実行する前の問題です。
&&は単一のアンパサンドとは異なり&ますか?