FC2ブログ

linuxやるブログ

linuxができなくて悔しい思いしてるので、linuxやるぞ~ 初歩的なやつから少しずつ。 OSはCentOS5.3がメインだす。正確性は保障できませぬ。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

: 何もしない

: 何もしない。


if文などの構文中で、何もしないで通過させる場合に使う。

例 /root/test.txtが存在すればば何もせずに次に行き、
なければ「YABA!! test.txt not found」と表示させるシェルtest.shを作成する。

----test.sh------
#!/bin/sh

if [ -f /root/test.txt ];then
: ←見え難いけど、これです。
else
echo "YABA!! test.txt not found!"
fi
exit
-------------------------

これで実行してみます。
# sh -x test.sh
+ '[' -f /root/test.txt ']'
+ :
+ exit

*ファイルがあったようなので何もせず終了しました。
めでたし





スポンサーサイト

PageTop

シェル変数と環境変数

シェル変数と環境変数
シェル変数と環境変数の違いが今いちよく理解してなかったので、調べて見ました。


・シェル変数・・・今現在のシェル内だけで適用される変数。子シェルなどでは使えません。
例:DATA_FILEというシェル変数を作成し、値にtest.txtを設定する。
$ DATA_FILE=test.txt
$ echo ${DATA_FILE}
test.txt ← test.txtがセットされています。
 
しかし、子シェルを開いて確認してみると。。。
$ bash
$ echo ${DATA_FILE}
(何も表示されず) ← 子シェルではセットされていません

・環境変数・・・今現在のシェルだけでなく子シェルにも適用される。
例:DATA_FILE2というシェル変数を作成し、値にtest2.txtを設定後、これを環境変数にする。
$ DATA_FILE2=test2.txt
$ export DATA_FILE2 ← 環境変数を設定するにはexportコマンドっす
$ echo ${DATA_FILE2}
test2.txt

上記を一行でやってしまうには、
$ export DATA_FILE2=test2.txt 

同様に子シェルを開いて確認してみると。。。
$ bash
$ echo ${DATA_FILE2}
test2.txt ← おおう、子シェルでも使用可能だあ

ちなみに今回は子シェルを使って確認しみましたが、シェルスクリプトなんかでも同様のことが言えます。

PageTop

LANG 変数

LANG環境変数
文字コードの環境変数

現在の文字コードを確認するには、
$ echo $LANG
en_US.UTF-8 ← これに設定されてる。英語環境ですね。

例:文字コードを、ja_JP.UTF-8 に変更する。
$ export LANG=ja_JP.UTF-8
確認します。
$ echo $LANG
ja_JP.UTF-8 ← 変わってる

ちなみに↑のように設定してもログオフすると元に戻ってしまいます。
デフォ値を設定するには、
/etc/sysconfig/i18nファイルに設定します。

例:LANG環境変数のデフォ値をja_JP.UTF-8に設定する。
# vi /etc/sysconfig/i18n
---------------------
LANG="ja_JP.UTF-8" ←設定する
---------------------

おわり。

文字コード種類はだいたい
ja_JP.UTF-8
en_US.UTF-8
ja_JP.eucJP
ja_JP.ujis
en_US
な感じです。







PageTop

` バッククウォート

バッククウォート shift + @ を押すと出てくる ` です。
ずっと不明でしたが、以前やった $(コマンド)と同じで、`コマンドA`とやることで、コマンドAの実行結果を出力するそうです。

例 日付.log という空ファイルを作成する。

$ touch `date +%Y%m%d`.log
$ ll
total 0
-rw-rw-r-- 1 keroro keroro 0 Jan 18 02:25 20080118.log

$(コマンドA) = `コマンドA` ・・・早く言ってくれよぉorz



PageTop

; (セミコロン)

;(セミコロン)

今更感がないわけでもないですが、複数コマンドを一行で行う;(セミコロン)です。

例 mkdir dir1 と touch dir1/file1 を一行で 行います。

$ mkdir dir1;touch dir1/file1
確認
$ ll dir1
total 0
-rw-r--r-- 1 keoro keroro 0 Jan 17 01:33 file1

おしまい。

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。