【 bc 】コマンド――対話的に計算する、小数点以下の桁数を指定して計算する:Linux基本コマンドTips(121) 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、対話的に計算を行う「bc」コマンドです。
概要 シェル変数はすべて文字列扱いであるため、数値計算のためには専用のコマンドを用いる必要があります。 整数同士の計算 整数同士の四則演算にはexprコマンドを使用します。 sample.sh #!/bin/sh expr 1 + 1 expr 1 - 1 expr 1 '*' 1 # ワイルドカードと区別するために、クォーテーションで囲う必要があります expr 1 / 1 expr 1 % 1 実行例 $ sh sample.sh 2 0 1 1 0 大小比較 大小比較にはtestコマンドを使用します。 sample.sh #!/bin/sh CNT=0 while [ $CNT -ne 10 ] # "ne:!=", "eq:==", "lt:<", "le:<=", "gt:>", "ge:>=" do CNT=`expr $CNT + 1` echo $CNT done 実行例
シェルの種類 プロンプト メッセージ出力(echo, printf) メタ文字 シェル変数と環境変数($XXX) 特殊変数($x) 変数展開(${...}) 読み込み専用(readonly) シェルスクリプト(*.sh) コメント(#) 継続行(\) コマンド区切り(;) グループコマンド({...}) サブシェル((...)) コマンド置換($(...), `...`) 初期化ファイル(.bash_profile/.bashrc) 入出力・リダイレクト(>) ヒアドキュメント(<<) パイプ(|) バックグラウンド実行(&) ヒストリ(history) 行編集(Ctrl-a, Ctrl-b, ...) ディレクトリスタック(dirs) 条件実行(; && ||) 条件分岐(if) 条件分岐(case) 繰り返し(for) 繰り返し(while) 繰り返し(until) 選択肢(selec
Linuxのcpコマンドで"cp: omitting directory"というエラーになる場合の対処について紹介します。 この記事はLinuxビギナーの方向けの記事です。 1.問題点 Linuxのcpコマンドでfooというディレクトリを/home/hoge/aaa配下にコピーしようとしたところ、"cp: omitting directory"というエラーになりました。 $ cp ./foo /home/hoge/aaa cp: omitting directory `./foo' このエラーを解消する方法が分かりません。 2.原因と対処 ディレクトリをコピーする場合のオプションが足りません。 ディレクトリをコピーする場合、「-r」オプションが必要です。 $ cp -r ./foo /home/hoge/aaa コピー元の属性を維持する場合は「-p」オプションも併用します。 $ cp -r
中身を見るだけじゃなくて、いろいろ調べる 中身を見る ファイルが小さいとき # zcat test.gz ファイルが大きいとき # gzip -dc access_log.1.gz | less参考 http://open-groove.net/linux/gzcat-and-gzip-dc/ ファイルサイズと、解凍後のファイルサイズを調べる lオプションを使う # gzip -l test.gz compressed uncompressed ratio uncompressed_name 260 426 47.7% index このとき、解凍後のファイルが4GBを超えていると表示バグが発生して、 圧縮率がマイナスになるので注意。 そのような場合は、時間がかかるが下のようにすると解凍後のファイルサイズが表示される。 他に良い方法あるかなぁ。 # gzip -dc test.gz | wc
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く