linux シェル学習ノート 2日目
変数
- ローカルホスト名の取得
/#ホスト名
- このシステムのバージョン番号を取得する
#uname -r
- CPUの種類を取得
- cpuの動作周波数を取得する
猫 /proc
- メモリ使用量の取得
#フリー -m
- ハードディスク使用量の取得
/{br#df
変数の種類と変数操作
- ローカル変数(一般的に言われるもの)
ローカル変数はユーザーの現在のシェルにのみ存在し、ユーザーが現在のシェルを終了するか、新しいシェルを開くと、設定された変数は存在しません。
/セット変数
#変数名 = 変数値
変数を表示
#echo ${変数名}.
a=1表示とすると、echo ${a}。
- 環境変数(使用頻度は極めて低い)
環境変数は、すべてのユーザープロセス(しばしば子プロセスと呼ばれます)に使用されます。ログインプロセスを親プロセスと呼び、シェルで実行されるすべてのユーザプロセスを子プロセスと呼びます。ローカル変数と異なり、環境変数はエディタ、スクリプト、アプリケーションを含むすべての子プロセスに使用することができます。
/環境変数はユーザがログアウトすると消えてしまうので、 $HOME/.bash_profile (/etc/profile) ファイルで直接定義するのがベストです。
- ポジション変数(スクリプトや関数に非常に関連性の高いものです)
ポジション変数は$0,$1... ...$9 (9のみ)を示します。
{テーブル {コルグループ 本文$0
$1
$2
$3
{を使用します。$4
{を使用します。$5
$6
{を使用します。$7
{を使用します。$8
{を使用します。$9
スクリプト名
A
B
.C
.D
E
F
{を使用します。G
.H
.I
0=現在のスクリプト名
スクリプトのpositionパラメータを使用する
システムコマンドにパラメータを渡す
- 特殊変数
$# スクリプトに渡される引数の数
スクリプトに渡されたすべてのパラメータを1つの文字列として表示する $* ($@)
$$ 実行中のスクリプトの現在のプロセスID番号
$? 最後のコマンドの終了ステータスを表示します。0はエラーなし、それ以外の値はエラーを示します。
引用の必要性
変数操作で変数代入を行う際にスクリプトが犯しやすいミスの1つに、参照エラー
例:echo abc *
画像
echo abc '*'
echo 星ボタンを押すと終了します *。
/{br
引用の仕方
ダブルクォート(")
(を除外する必要があります。)
以外の文字や文字列を引用する場合は、ダブルクォートを使用します。
シングルクォート(')
(もっと威圧的で、何でも文字に変換できる)
二重引用符と似ていますが、シェルは引用符で囲まれた値を無視する点が異なります。
つまり、その特別な意味がマスクされている場合は、引用符の中のすべての文字を文字列として扱います。
バッククォート (`)
(括弧内はコマンドとして実行)。
システムコマンドの出力を変数に設定するときに使用します。
シェルはバッククオートの内容を受け取り、システムコマンドとして実行します
バックスラッシュ(˶‾᷄ -̫ ‾᷅˵)
ある文字が特殊な意味を持つ場合、バックスラッシュはシェルがその意味を誤解するのを防ぐ、つまりその特殊な意味を覆い隠すのです。
次の文字は特別な意味を持ちます: & * + ^ $ ` " | ?
スクリプトの例
- こんにちは。
#! /bin
/{br#これは最初のスクリプトです
/echo "こんにちは、世界よ!"
インプリメンテーションを行います。
chmod u+x Hello.sh
. /Hello.sh
- var.sh
#! /bin
/{brecho $1
echo $2
/{brエコー $3
/{brエコー $4
/{brエコー5ドル
/{brエコー $6
/{brエコー $7
/{brエコー $8
/{brエコー $9
/{brエコー10
/{br - #! /bin
/{brecho -e "hostnamet `hostname`"
/echo -e "OScoret `uname -r`".
echo -e "CPUInfot `grep "model name" /proc/cpuinfo|awk -F: '{ print $2}'`".
ehco -e "CPUMHzt `grep "MHz" /proc/cpuinfo | awk -F: '{print $2}'` "
echo -e "MEMTotalt `free | awk '$1="Mem:"{print $2}'`"
echo -e "DiskInfot `df | grep dev |awk '{print $1 $2}'`"
レビュー
スクリプトの構成と動作
変数の種類と使い方
環境変数
ローカル変数
パラメータ変数
特殊変数
変数に値を代入する際の参照方法
関連
-
git eclipseプラグインのインストール
-
[解決済み】R on MacOS Error: vector memory exhausted (limit reached?)
-
[解決済み】 mean() 警告:引数が数値または論理でない:NAを返す
-
[解決済み】C++エラー: 予想されるunqualified-idを修正する方法
-
[解決済み】 munmap_chunk(): 無効なポインタ
-
[解決済み] 型 'closure' を型 'character' のベクトルに強制することはできません。
-
[解決済み] [Solved] Missing `server' JVM (Java⇄jvm.dll.) [closed].
-
[解決済み】IA-32 AT&T構文でのMOVZBL命令は何をするのですか?
-
[解決済み】C++ エラー: 'std::bad_alloc' のインスタンスを投げた後に呼び出されたターミネート
-
一般的な電子書籍フォーマットの解析とそのデコンパイルの考え方
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み】ポインタと整数の比較を警告する
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み】エラー:Rの"}"に予期しない'}'が発生する 【重複】Rの"}"に予期しない'}'が発生する。
-
[解決済み] gdb: 「シンボルテーブルがロードされない
-
[解決済み] git - あなたのブランチは 'origin/master' より1コミット分進んでいます。
-
[解決済み] クラス内のメソッドを指定された型に適用できない
-
[解決済み】PHP 接続に失敗しました。SQLSTATE[HY000] [2002] 接続が拒否されました。
-
複数のスクリプトでiisログをクリーニングするための推奨コード
-
[解決済み】構造体フィールドを代入すると「error: 式への代入で配列型エラーが発生しました」(C言語)