Shell

bash の初期化ファイル .profile, .bashrc, .bash_profile の使い分けと管理方針

はじめに bash の初期化ファイル ログインシェルとは インタラクティブ(対話的)シェルとは ログインシェルとインタラクティブシェルの分類 各種環境における初期化ファイル CentOSの初期化ファイル Ubuntuの初期化ファイル macOS(Catalina以前)の初期化ファ…

リモートシェルの終了ステータス

ssh を使うので利用機会は無いと思うけど・・ リモートシェルの利用確認 リモート側でechoして接続確認。 #!/bin/sh rsh host "echo test > /dev/null" if [ $? -n 0 ]; then echo "Connection faild." 1>&2 exit 1 fi リモート先のログインシェルを強要する…

シェルの1行目はシバン

毎度名前を忘れます。シェルの1行目に書く#!から始まるインタプリタ指定はシバン(shebang)と呼びます。 #!/bin/sh ・・・ そんだけ。。

ファイルとディレクトリのパーミッション

ファイルのパーミッション 設定 意味 r そのファイルを読める w そのファイルを変更できる x そのファイルをプログラムとして実行できる ファイルに対する s/t ビット 設定 意味 u+s setuid 該当のコマンドが所有者の権限で実行される g+s setgid 該当のコマ…

2つのディレクトリ下のファイル構成を比較するシェルスクリプト

タイトルの通りです #!/bin/sh # # 名称 # dir_diff - 2つのディレクトリ下のファイル構成を比較する # # 書式 # dif_diff [-v] [dir1] dir2 # # 解説 # 指定した2つのディレクトリ下にあるファイル構成を比較し、 # 等しくないファイルをリスト表示する。 #…

指定日時よりも更新日付の新しいファイルを検索するシェルスクリプト

タイトルの通りです。 #!/bin/sh # # 名称 # find_new_file.sh - 指定日時よりも更新日付の新しいファイルを表示する。 # # 書式 # find_new_file.sh [-rv] [[CC]YY]MMDDhhmm[.ss] [directory] # # 解説 # 指定日時より更新日付の新しいファイルを表示します…

シェル変数のまとめ

覚えていられないシェル変数について書いておこう・ 特殊変数 特殊変数一覧 変数 説明 $0〜$9 $0はコマンド名、以降$1,$2・・は第1,2引数に対応。 $* 引数全体。ダブルクオートで括ると、引数全体をダブルクオートで囲んだ状態となる。 $@ 引数全体。ダブル…

Shellの小ネタ集

文字列の長さを得る expr は引数にコロンがあると、その右側と左側の文字列を比較して、先頭から何文字までが等しいかという値を返却する。そのため、以下のようにすると文字列の長さが得られる。 expr "string" : '.*' 文字列中に特定の文字列が存在するか…

test コマンドを書く時は・

testコマンドの注意点 以下のような記述はよろしくない。 if [ ${VAR} = ""]; then echo "true" else echo "false" fi if [ ${VAR} != "" ]; then echo "true" else echo "false" fi 上記は VAR が空であった場合、以下のように展開されるため test コマンド…

数値を判断するShell関数

文字列が数値かどうかを判定する関数。 exprにより数値演算を行い、エラーが発生しないかで数値判断できます。 #!/bin/sh IsNumeric() { # # 名称 IsNumeric - 文字列が数値かどうかを判定する # # 書式 IsNumeric string # # 解説 指定した文字列がすべて数…

英数字を判断するShell関数

入力された文字列が英数字だけかどうかチェックするShellサンプル。 #!/bin/sh validAlphaNum() { # 引数が英数字だけの文字列なら 0 を返し、そうでない場合には 1 を返す. # 英数字以外の文字をすべて削除する. compressed="$(echo $1 | sed -e 's/[^[:a…

改行コード変換シェル dos2Unix.sh

指定ディレクトリ配下のファイルの改行コードをCRLF→LFに変換するシェルです。シェル中のLIST変数にて対象ファイルを指定できます。また、変換時の更新日付を元のまま保持するオプションもあります。 ずいぶん昔に書いたと思われるシェルですが、さらしとき…