インターネットには、BASHを使ってシェルスクリプトを作成する方法を示すガイドがたくさんあります。このガイドは、シェルスクリプトの経験がほとんどない人が書いたもので、少し異なるスピンを与えることを目指しています。
これは馬鹿げたアイデアだと思うかもしれませんが、あなたがすでに専門家であり、他のガイドが追い抜くのに時間がかかりすぎるように、いくつかのガイドがあなたに話すことがわかります。
私のLINUX / UNIXシェルのスクリプティングの経験は限られていますが、私は貿易によってソフトウェア開発者です。私はPERL、PHP、VBScriptなどのスクリプト言語を手に入れています。
このガイドのポイントは、私が学ぶように学び、私が拾った情報があなたに伝わることです。
入門
さまざまな種類のシェルの説明やKSHやCSHよりもBASHを使う利点など、私がすぐに伝えることができる理論は明らかにたくさんあります。
新しいことを学ぶときにほとんどの人は飛び込みたいと思っています。最初にいくつかの実践的なレッスンを始めます。そのことを念頭に置いて、今は重要ではないトリビアであなたを退屈させません。
このガイドに必要なのは、テキストエディタとBASH(ほとんどのLinuxディストリビューションではデフォルトのシェル)を実行する端末です。
テキストエディタ
私が読んだ他のガイドでは、コマンドの色分けを含むテキストエディタが必要であり、推奨されるエディタはVIMまたはEMACSのいずれかであることが示唆されています。
カラーコードは、入力時にコマンドをハイライト表示するのに便利ですが、絶対的な初心者にとっては、コードの単一行を書くことなく、VIMとEMACSを学ぶ最初の数週間を費やすことができます。
2つのうちEMACSが好きですが、正直言ってnano 、gedit、leafpadのような簡単なエディタを使うのが好きです。
あなた自身のコンピュータにスクリプトを書いていて、いつでもグラフィカルな環境にアクセスできることを知っているなら、あなたにとって最適なエディタを選ぶことができます。それはGEditのようなグラフィカルでも、端末で直接実行されるエディタナノまたはヴィムのようなものである。
このガイドでは、大半のLinuxディストリビューションにネイティブでインストールされているため、nanoを使用しています。そのため、アクセスできるようになります。
ターミナルウィンドウを開く
Linux MintやUbuntuなどのグラフィカルデスクトップでLinuxディストリビューションを使用している場合は、CTRL + ALT + Tを押してターミナルウィンドウを開くことができます。
あなたのスクリプトを置く場所
このチュートリアルでは、スクリプトをホームフォルダの下にあるフォルダに置くことができます。
ターミナルウィンドウ内で、次のコマンドを入力してホームフォルダにいることを確認します。
CD〜cdコマンドはchangeディレクトリを表し、チルダ(〜)はホームフォルダのショートカットです。
次のコマンドを入力して、正しい場所にいることを確認できます。
pwdpwdコマンドはあなたの現在の作業ディレクトリ(あなたがディレクトリツリー内にいる場所)を指示します。 私の場合、それは/ home / garyを返しました。
今すぐ明らかにあなたのスクリプトを直接ホームフォルダに入れたくないので、次のコマンドを入力してscriptsというフォルダを作成してください。
mkdirスクリプト次のコマンドを入力して、新しいスクリプトフォルダに変更します。
cdスクリプトあなたの最初のスクリプト
最初のプログラムに単に "Hello World"という単語を出力させるようにプログラムする方法を学ぶときは、習慣的です。
スクリプトフォルダ内から次のコマンドを入力します。
nano helloworld.sh次のコードをnanoウィンドウに入力します。
#!/ bin / bash echo "hello world"CTRL + Oキーを押してファイルを保存し、CTRL + Xキーを押してnanoを終了します。
スクリプト自体は次のように構成されています。
#!/ bin / bashは、インタプリタとオペレーティングシステムがファイルをどのように扱うかを知ることができるように書くすべてのスクリプトの先頭に含まれている必要があります。 基本的には、それを入れて、なぜそれをするのか忘れてください。
2行目にはechoと呼ばれるコマンドが1つあり、すぐ後に続くテキストを出力します。
複数の単語を表示する場合は、単語の前後に二重引用符( ")を使用する必要があります。
次のコマンドを入力してスクリプトを実行できるようになりました。
sh helloworld.sh"hello world"という言葉が現れるはずです。
スクリプトを実行する別の方法は次のとおりです。
./helloworld.shそのコマンドを端末で直ちに実行すると、権限エラーが発生する可能性があります。
この方法でスクリプトを実行する権限を与えるには、次のように入力します。
sudo chmod + x helloworld.sh実際に何が起こったのですか? 権限を変更せずにsh helloworld.shを実行できましたが、./helloworld.shを実行すると問題が発生しましたか?
最初のメソッドは、helloworld.shを入力とするbashインタプリタを読み込み、それをどのように処理するかを示します。 bashインタプリタにはすでに実行権限があり、スクリプト内でコマンドを実行するだけでよいのです。
2つ目の方法は、オペレーティングシステムがスクリプトを使って何をするかを決めるため、実行するためには実行可能ビットが必要です。
上記のスクリプトは大丈夫でしたが、引用符を表示する場合はどうなりますか?
これを達成するにはさまざまな方法があります。 たとえば、次のように引用符の前にバックスラッシュを付けることができます。
エコー\ "hello world \"これにより出力 "hello world"が生成されます。
しかし、ちょっと待ってください。\ "hello world \"を表示したいのですが?
あなたはエスケープ文字をエスケープすることもできます
エコー\\ "\" hello world \\ "\"これにより、\ "hello world \"という出力が生成されます。
今私はあなたが何を考えているのか知っています。 しかし、私は本当に\\ "\" hello world \\ "\"
これらすべてのエスケープ文字でエコーを使用すると、かなり愚かになる可能性があります。 printfという別のコマンドがあります。
例えば:
printf '%s \ n' '\\ "\" hello world \\ "\"'表示したいテキストは一重引用符で囲まれていることに注意してください。 printfコマンドは、スクリプトからテキストを出力します。 %sは文字列を表示することを意味し、\ nは新しい行を出力します。
概要
私たちは第1部で多くのことを実際にはカバーしていませ
次の段階では、さまざまな色でテキストを表示し、入力パラメータ、変数を受け入れて処理し、コードにコメントするためのhello worldスクリプトの改善を検討します。