初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます.

UNIX

Shell Script デバッグの方法

デバック時に使用するコマンドを詳細します。 set -oオプション 1文字のオプション 内容 verbose set -v コマンドを実行する前にコマンドラインの内容を出力する xtrace set -x コマンドラインを展開した後の内容を出力する nounset set -u 未定義の変数を参…

Shell Script 正規表現でマッチした文字列を変数に代入する

$BASH_REMATCH変数の使用方法について記述します。 #!/bin/bash url="https://www.google.com" if [[ $url =~ ^(http|https)://(.+)\.(.+) ]]; then echo "${BASH_REMATCH[0]}" echo "${BASH_REMATCH[1]}" echo "${BASH_REMATCH[2]}" echo "${BASH_REMATCH[3…

Shell Script [[ ]] を用いた比較方法

testコマンド [] よりも での比較はShellScript以外のプログラム言語と 似たような記述が可能になります。[ ]だとAND演算やOR演算は【-a】や【-o】を用いますが、 では&&・||が使用できます。 x=30 if [[ $x -gt 10 && $x -lt 50 ]]; then echo 'x > 10 AND …

Shell Script 関数の呼び出し確認

関数内で関数名を参照したい場合にはFUNCNAME変数を確認します。 この変数は呼び出した関数を実行している間のみ存在します。FUNCNAME変数は主にどの関数で処理を実行したかを表示するときや、 デバッグ時に利用されます。 function print() { echo Hello Wo…

ShellScript コマンドのグループ化・サブシェル

複数のコマンドを実行した出力をまとめて、1つのファイルに リダイレクトする方法を記述します。 コマンドのグループ化 {}カールブラケットを使用 { date +%Y-%m-%d echo ‘Documents List’ ls ~/Documents } > DirectoryList.txt サブシェルによるコマンドの…

bash ShellScript リダイレクト まとめ

bashでコマンドを実行するときに標準入出力の入力元と出力先を 置換することをリダイレクトと言います。 ファイルディスクリプタ プロセスから開かれた全てのファイルには、ファイルディスクリプタと 呼ばれる番号が割り当てられます。 プロセスからファイル…

ShellScript パターン指定

Shellには変数に対して、削除するパターンが指定できます。前方・後方からの検索があり、最短マッチと最長マッチで動作が変わります。dirname・basenameと同じ動きをする記述です。 前方一致(前から検索) # ${変数名##パターン} # 前方からの最長マッチを…

Shell Script 比較一覧

testコマンドで使用する比較の一覧を記述します。 文字列の比較 演算子 内容 str1 = str2 str1とstr2が等しい str1 == str2 str1とstr2が等しい str1 != str2 str1とstr2が等しくない -n str1 str1が空文字列ではない -z str1 = str2 str1が空文字列であ…

ShellScript たまに使用するコマンド 健忘録

完全に個人的な健忘録です。 普段あまり使用しないけど、たまに使用したいコマンド一覧を記述します。 # ファイルタイプを判定する file ファイル名(*と指定するとカレントディレクトリにあるファイル全て) #ファイルのディスク使用量を推定する du #EA(メ…

ShellScript 配列・連想配列

配列のあれこれ 配列宣言 配列の要素を追加 配列の要素数を調べる 要素の削除 全ての要素の参照 配列に存在する要素のインデックスの取得 #!/bin/bash # 配列宣言 animals=(Cat Dog Bird [4]=Lion) # 配列の要素を追加 animals[6]=Elephant # 配列の要素数を…

Shell Script 位置パラメータ・特殊パラメータ

位置パラメータ シェルスクリプトを実行した時の引数を参照するための変数のこと位置パラメータは$+引数のindexで参照できます。 また10以上の位置パラメータは${10}とカールブラケットで囲う必要があります。 #!/bin/bash echo $0 echo arg1:$1 echo arg2…

bash シェルの仕組

LinuxやUnix系のOSには切っても切れないシェル。コマンドラインにコマンドを打った時に実行が終わるまでの 流れを記述します。 コマンドラインにユーザーかコマンドを記述 シェルがコマンドを解釈し展開する コマンド実行前にシェルはforkする 子プロセスがe…

wget 使い方健忘録 コマンドライン

何処かのサイトで画像を大量にダウンロードしたい時に 画像一枚一枚を右クリック>ダウンロードして保存の 作業をしていると時間がいくらあっても足りません。そんな時はコマンドラインからwgetを使用して一括でダウンロードできます。プロトコルはファイルを…

bash Linux findとxargsコマンドを使用する際の注意

findとxargsコマンドで引っかかるエラーの対処法 $ find . -name '*.txt' | xargs rm -R出力するとファイルが存在するにも関わらず No such file or directoryとエラーになってしまいます。 これはファイル名にスペースが含まれるケースでエラーが出てしまう…

ディレクトリ毎に分けてZipファイルにする

複数のディレクトリがあり、Zipで圧縮したい事があります。 でも圧縮すると一つのZipになってしまいます。それをディレクトリ毎にZipファイルで圧縮する方法を書いときます。 find ./ -mindepth 1 -maxdepth 1 -type d -exec zip -r "`basename {}`".zip {} …

bash UNIXコマンド 検索結果から文字列を検索する grep

grepは指定したファイルに記述されている検索したい文字列を含む行を表示するのに便利です。findやxargsを応用すればもっと便利な使い方ができます。 検索したファイル名に検索したい文字列が含まれるファイルを表示する find . -name '*.txt' | grep abc ./…

bash Terminal treeコマンド ツリー構造を表示する

treeコマンドを使うと下記のようにツリー構造を簡単に表示できます。 . ├── Templates │ └── index.dwt ├── about │ └── index.html ├── about.html ├── contact │ └── index.html ├── css │ └── style.css ├── img │ ├── photo01.jpg │ └── photo02.jpg ├──…

Terminal UNIXコマンド 検索結果を削除する find rm xargs

Terminalで検索した結果を削除する方法を忘れるので健忘録で残しときます。 find ./ type f -name '*.txt' | xargs rm TerminalはGUIと違って削除するとファイルはゴミ箱には移動せず、 そのまま完全に削除されるので下記の方法を取るといいでしょう。 1.fin…