☆★☆無料で現金、商品がもらえる!多数のお得サイト 一括登録はこちら。☆★☆


http://www.storm-net.com/ 転職登録で最適なお仕事をご紹介します

シェルスクリプトいろいろ

linux使ってるからにはある程度のシェルスクリプトは組めないとダメというか不便ですよね。
ここではいくつか私が知らなかったり参考にさせて頂いたものを載せています。
へなちょこの私ですのでレベル低いって言わないでね。。。

素朴な疑問があります。Linuxではなんでデフォルトでカレントディレクトリにパスが通っていないのでしょう?
それはセキュリティ上の理由のようです。例えば ls というコマンドは通常 /bin にありますよね。
もし悪意あるだれかがあなたが席をはずしている間にあなたの端末からあなたのホームディレクトリに ls というスクリプト
を作成したとします。そしてそのlsというスクリプトの中身はあなたのホームディレクトリ以下を全て削除するものしますよね。
戻ってきたあなたはなにも知らずに ls と打った瞬間に悲劇が起こってしまいます。
しかしカレントにパスを切っていなければroot権限しか変更できない安全な /bin/ls を実行しにいきますのでこのような悲劇が起こらなくて済みます。
ということもカレントディレクトリにはパスが切られていない理由の一つなのです。
そう考えるとWindowsって悪意ある人間ならなんでもできちゃいますよね。

ここではlinux標準の bash を対象に記述しています。他のシェルでは少し異なる場合があります。
現在使用しているシェルを知るには。  echo $SHELL
 利用可能なシェルを知るには。  cat /etc/shells で表示されます。
スクリプトの中から別のスクリプトを実行するには。  シェルスクリプトの中に、. ファイル名  と記述すればそのファイルを読み込んであたかもその部分に記述していたかのようになります。
 シェルスクリプトの1行目にある #!/bin/bash は何なのでしょうか。  シェルスクリプトを実行するシェルを指定しています。 /bin にあるbashで実行せよ。ということですね。 perl なんかの指定もできます。
 シェルスクリプトで引数を参照すには。  意識していなくても次の変数に自動的にセットさせれているものがあります。
$0   呼び出したスクリプトの名称
$*  $0以外の全ての引数がセパレーターで区切られてセットさせれています。
 $1 〜 $9 引数の1つ目から9個目がセットさせれています。
echo の中の変数を表示させるには。ダブルコーテーションとシングルコーテーションの違い。 $1 に "abc" がセットさせている場合のそれぞれの結果。
echo "$1の値は$1です。"  → abcの値はabcです。
echo '$1の値は$1です。'   → $1の値は$1です。
echo "\$1の値は$1です"  → $1の値はabcです。
case文の使用法 case <式> in
<パターン1>)
    命令文1 ;;
<パターン2>)
    命令文2 ;;
・・・・・
<パターンn>)
    命令文n ;;
esac
select文の使用法 select<変数名> [in <リスト>]
do
<命令文>
done
case文とselect文を用いた例 #!/bin/bash

PS3='Which do you like? '
select ans in Linux Windows Mac
do
    case $ans in
    Linux)
        echo "You like Linux." ;;
    Windows)
        echo "You like Windows." ;;
    Mac)
        echo "You like Mac." ;;
    esac
    break
done

どんどん追加予定!
 

不要ファイルの削除サンプルはこちら
ftpで更新されたファイルのみの自動アップロードはこちら
大文字ファイル名を小文字に変換するサンプルはこちら
ログインした時にXを起動するかどうかの確認をするスクリプトはこちら
ファイル名の一部に日付を付ける
あるディレクトリ以下をncftpでバッチ送信

       一覧に戻る         MAIN