次のページ
前のページ
目次へ
ユーザに何らかの入力を促したいと思う場合がよくあるものです。それを実現する方
法はいくつか存在しますが、以下はそれらのうちのひとつです。
#!/bin/bash
echo Please, enter your name
read NAME
echo "Hi $NAME!"
上記の変形として、read を使って複数の値を受け取ることもできます。
次の例題はそれを明らかにするものです。
#!/bin/bash
echo Please, enter your firstname and lastname
read FN LN
echo "Hi! $LN, $FN !"
コマンドライン(あるいはシェル)で、次のように打ってみてください。
$ echo 1 + 1
2 が出力されると期待していたなら、がっかりしたことでしょう。
bash に数値を計算させたいときは、どうしたらいいのでしょう?
解決策は次のようにすることです。
$ echo $((1 + 1))
上記では、よりロジカルな出力がなされたことと思います。これは数式を評価した
ということです。また、次のような表現でも同じことができます。
$ echo $[ 1 + 1 ]
分数やあるいはもっと複雑な数学的処理が必要になった場合、あるいは数式で遊び
たいときなどは、数式評価のための bc というコマンドが使えます。
コマンドプロンプト上で "echo $[3/4] " と実行しても、bash は
整数でしか答えを返せないので、結果は 0 となります。
しかし、"echo 3/4 | bc -l " と実行すれば、0.75 という正しい答
えが返ってきます。
Mike からのメッセージを掲載します。(謝辞を見てください)
あなたはいつも #!/bin/bash というのを使っていますが、bash
がどこにあるのか探す方法を例示したほうがいいと思います。"bash をその
場所に置いてしまえばいいのですが、すべてのマシンがそれをしているわけではあり
ません。ルートディレクトリから、'find ./ -name bash ' を実行すれば通
常は探し出せるはずです。
チェックすべきなのは、次のような場所でしょう。
ls -l /bin/bash
ls -l /sbin/bash
ls -l /usr/lodal/bin/bash
ls -l /usr/bin/bash
ls -l /usr/sbin/bash
ls -l /usr/local/sbin/bash
(これ以外のディレクトリはすぐに思い浮かびません... システムが違っても、
これまではこの中から見つかる場合がほとんどでした。)
それから、'which bash ' を使ってみるのもいいと思います。
bash では、プログラムの戻り値を $? という特殊な変数に入れて
おくことができます。
以下は、プログラムの戻り値を獲得する方法を書いたものです。ただし、
/dada というディレクトリは実在しません。(これも Mike からの提案を
載せたものです)
#!/bin/bash
cd /dada &> /dev/null
echo rv: $?
cd $(pwd) &> /dev/null
echo rv: $?
以下の簡単なスクリプトは、すべてのデータベース上を探して全部のテーブルを
表示するというものです( MySQL がインストールされていることが前提で
す)。
この中の 'mysql ' というコマンド部分を変更して、有効なユーザ名とパス
ワードが使えるようにしてください。
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
コマンドソースとして複数のファイルを使うことができます。
作成予定( TO DO )
次のページ
前のページ
目次へ
|