3. 最初のスクリプト

RSSフィード株式Twitter

購入シェルスクリプティングのチュートリアルとしてPDFのためにのみ$5我々の最初のシェルスクリプトまでは書けないように、”こんにちはます。 その後、あなたが読んだ他のチュートリアルよりもHello Worldprogramからより多くを取得しようとします:-)
ファイルを作成します(こんにちこんにちこんにちこんにちこんにちこんにちこんにちはfirst.sh)次の通り:first.sh最初の行は、ファイルが/bin/shによって実行されることをUnixに伝えます。これは、ほぼすべてのUnixシステム上のBourneシェルの標準的な場所です。 GNU/Linuxを使用している場合、/bin/shは通常bash(または最近ではdash)へのシンボリックリンクです。

2行目は特殊記号#で始まります。 これはコメントとして行をマークし、シェルによって完全に無視されます。
唯一の例外は、ファイルの最初の行が#!-私たちのように。 これは特別な指示ですUnixは特別に扱います。 これは、csh、ksh、または他の何かを対話型シェルとして使用している場合でも、それに続くものはBourneシェルによって解釈されることを意味します。
同様に、Perlスクリプトは #!/usr/bin/perl 行で始まり、次のプログラムをperlで実行する必要があることを対話型シェルに伝えることができます。 Bourneシェルプログラミングの場合、#!/bin/sh.

三行目はコマンドを実行します:echo"Hello""World"
echoは自動的にそのパラメータの間に単一のスペースを配置します。
#シンボルはまだコメントをマークします。#とそれに続くanythingfollowingはシェルによって無視されます。ここで、chmod 755 first.sh./first.shを実行します。
あなたの画面は次のようになります:

$ chmod 755 first.sh
$ ./first.sh
Hello World
$

あなたはおそらくそれを期待しているでしょう! あなたも実行することができます:

$ echo Hello World
Hello World
$

次に、いくつかの変更を加えましょう。
まず、echoはパラメータの間にスペースを入れます。 入数間のスペース”こんにちは”および”世界”. あなたは出力が何であると期待していますか? それらの間にタブ文字を入れるのはどうですか?
シェルプログラミングではいつものように、それを試してみてください。
出力はまったく同じです! 私たちはechocpそれらの間のギャップについては気にしません。今度はコードをもう一度変更します:

#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!

今回は動作します。 あなたはおそらく、あまりにも、あなたが他のプログラミング言語の経験を持っている場合は、それを期待していました。 しかし、より複雑なコマンドとシェルスクリプトで何が起こっているのかを理解するための鍵は、理解し、説明することができることです:なぜ?
echoわれていたった一つの引数の文字列”こんにちはます。 それはこれを正確に印刷します。
ここで理解すべきポイントは、シェルが呼び出されるプログラムに引数を渡す前に引数を解析することです。 この場合、引用符は削除されますが、文字列は1つの引数として渡されます。
最後の例として、次のスクリプトを入力します。 あなたがそれを実行する前にtheoutcomeを予測してみてください:

first2.sh

#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
echo "Hello World"
echo "Hello * World"
echo Hello * World
echo Hello World
echo "Hello" World
echo Hello " " World
echo "Hello "*" World"
echo `hello` world
echo 'hello' world

あなたが期待したようにすべてですか? そうでない場合は、心配しないでください! これらは、私たちは、このチュートリアルでカバーされるもののほんの一部です。.. そして、はい、私たちはechoよりも強力なコマンドを使用しています!P>

RSSフィードTwitterで共有
戻る:哲学次:変数(パート1)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です