if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1
このドキュメントの内容は、以下の通りです。 はじめに gzipとは gzipの読み方 gzipコマンドの圧縮方式 圧縮ファイルの拡張子 gzipとgunzipの違い gzipの書式 gzipコマンドのオプション一覧 元のファイルを残さずにファイルを圧縮する場合 元のファイルを残して圧縮する場合 圧縮ファイルを展開する方法 複数のファイルを別々に圧縮する方法 複数のファイルを別々に展開する方法 元の圧縮ファイルを残して展開する方法 展開するときに既存ファイルを上書きする方法 -fオプション -cオプションには別名があります 複数のファイルやディレクトリをまとめて圧縮する場合 tarコマンドの使い方 xz圧縮との圧縮率の違い xzの使い方 はじめに ファイルの圧縮は非常に便利です。ものによりますが、大きなファイルが小さくなります。小さくなると何がうれしいかというと、ストレージの消費量が少なくて
case 文の使用方法 case 文とは? case 文は C言語や Java言語の switch 文に該当する制御文で、if 文と同じように処理を分岐するために使用されるものである。 分岐条件には判定対象となる 1つの値と、その値と照合される複数のパターンを指定する。case 文は値とパターンの照合を行い、パターンと一致した場合はそのパターンと共に指定されている処理を実行する。 case 文は if 文のように複雑な分岐条件を評価するのには向かないが、単純な分岐条件での多方向分岐に優れた文である。 → case 文は指定した値と複数のパターンとのマッチングにより多方向分岐を行う。 case 文には判定に使用される値と、それと照合される複数のパターン、およびそのパターンに一致した場合に実行する処理を指定する。 パターンは任意の数指定可能で、上から順に値との照合を行い、一番最初に一致したパタ
あくまでも、ファイル名から拡張子を判断するだけ。 以下に、$filenameとして与えられたファイルが拡張子.gzを持つかどうかを確認するシェルスクリプトのサンプルを示す。 Caseを使うケース。 非常に素直。 #!/bin/sh case "$filename" in *\.gz) echo "Found .gz suffix" ;; *) echo "Not a .gz suffix" ;; esac basenameを使うケース。 #!/bin/sh # `basename $filename .gz` returns `basename $filename` # *unless* it has a .gz suffix. [ `basename $filename .gz` = `basename $filename` ] || { echo $filename has a .gz
対象プラットフォーム: FreeBSD 8.x (下記手順を2014/05/01にFreeBSD 8.4-RELEASEで確認済み) はじめに シェルスクリプトを書いていると、ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出したいケースによく遭遇します。 このページでは、これらの文字列の抽出方法について説明します。 早速サンプルのシェルスクリプト ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出するのは、かなり容易です。 早速サンプルをご紹介します。 #!/bin/sh test_path="/usr/local/etc/apache/httpd.conf" string_filename=${test_path##*/} string_filename_without_extension=${string_filen
Landscape トップページ | < 前の日 2006-02-24 2006-02-27 次の日 2006-02-28 > Landscape - エンジニアのメモ 2006-02-27 シェルのパラメータ展開でスクリプト自身のファイル名を取得する 当サイト内を Google 検索できます * シェルのパラメータ展開でスクリプト自身のファイル名を取得するこの記事の直リンクURL: Permlink | この記事が属するカテゴリ: [bash] [シェルスクリプト] 2006-02-22 に書いた「シェルスクリプト自身のファイル名を取得できる特殊変数 $0」についてメールで指摘を頂いた。ありがとうございます。 私はスラッシュなどのパス指定文字列を除去するために basename コマンドを使っていたのだが、そうしなくても済む方法があるとのこと。 http://sonic64.com/20
シェルのパラメータ展開を利用して、basename、ファイル名(拡張子なし)、拡張子を取得する方法。 #!/bin/bash path="/path/to/foo.tar.gz" echo "path: $path" basename=${path##*/} echo "basename: $basename" filename=${basename%.*} echo "filename: $filename" extension=${basename##*.} echo "extension: $extension" via シェルのパラメータ展開でスクリプト自身のファイル名を取得する Man page of BASH
「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ
Bash シェルは、PS1 変数を表示する前に PROMPT_COMMAND の内容を実行します。 ramesh@dev-db ~> export PROMPT_COMMAND="date +%k:%m:%S" 22:08:42 ramesh@dev-db ~> [Note: これは PROMPT_COMMAND と PS1 の出力を違う行に表示します。]PS1 と同じ行に PROMPT_COMMAND の値を表示したい場合は、以下に示すように echo -n を使用します。 ramesh@dev-db ~> export PROMPT_COMMAND="echo -n [$(date +%k:%m:%S)]" [22:08:51]ramesh@dev-db ~> [Note: これは PROMPT_COMMAND と PS1 の出力を同じ行に表示します。]
参考文献 BashFAQ - Greg's Wiki これはすごい。特に以下の項目がためになる。 What is the difference between test, [ and [[ ? Why is $(...) preferred over `...` (backticks)? BashPitfalls - Greg's Wiki bash の落とし穴。これも必見。 シェルスクリプト $# - 引数の個数なので、スクリプト名は含まない。(要は最後のインデックス) BASH Programming - Introduction HOW-TO $'string' の形式で特殊文字を出力できる。$'\x30' = '0' など。 $(cat file) とするなら、$(< file) の方が fork しないので速い。 配列 迷宮入りするかと思うほど理解するのが難しかった。。 初期化
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く