初心者のWEBデザイン

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

bash

Bash バックグラウンド処理 健忘録

Bash バックグラウンド処理 Ctrl + z コマンド実行中処理サスペンド フォアグラウンド処理(サスペンド中の処理を再度処理実行) fg ジョブ番号 バックグラウンド処理 bg ジョブ番号 コマンド &

Shell Script デバッグ コマンドbashdbを使用する

bashdbを使用する bashdbを使用すると1行1行ソースコードを読み込んだり カレント行の変数の値を確認したりすることができます。 ブレイクポイントを設定したりそこまで処理を進めたりもできます。 コマンド名 別名 内容 step s 1ステップ実行する print $変…

bash 補完機能強化 Bash Completion設定方法

まずは各OSのパッケージ管理ソフトでインストールしましょう Mac:brew install bash-completion Red-Hat系:yum install bash-completion Debian系:apt-get install bash-completion .bash_profile if [ -f /etc/bash_completion ]; then . /etc/bash_comp…

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と同じ動きをする記述です。 前方一致(前から検索) # ${変数名##パターン} # 前方からの最長マッチを…

bash grep 拡張子の指定・除外

特定の拡張子のみ対象にする # 複数指定 grep -r "^<\!DOCTYPE html>" --include='*.html' --include='*.php' 特定の拡張子を除外する # 複数指定 grep -r "cat" --exclude='*.class' --exclude='*.js' 便利なオプション i:検索文字列の大文字小文字を区別…

bash sedコマンド 健忘録

動作確認に使用するファイルは下記になります。 1 animal cat dog bird 2 animal cat dog bird 3 animal cat dog bird s/ 検索文字 / 置換文字 /で正規表現も使用できます。 マッチした文字を置換する echo 'animal dog' | sed 's/dog/cat/' # 出力 # animal…

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

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

bash シェルの仕組

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

bash ShellScript いつも調べていること一覧 健忘録

ShellScriptルーチンワークを自動化する際に書くのですが 毎日触れていないしたまにしか書かないので これなんだっけ?・これどういう風に書くんだっけ?を連発します。なので、健忘録でまとめておきます。 ShellScriptの絶対パスの取得 コマンドの結果を変…

bash ShellScript コマンドの実行結果を変数や配列に代入する

ShellSciprtを書いているとfind・grepなどの結果を変数や配列に1行ずつ代入したいことがあります。 代入方法をいつも調べているので残しておきます。 変数に代入したい場合 ルートディクレトリにcat.txtがあった場合 #!/bin/bash files=$(find . -name "cat.…

bash ファイル名の一括置換 正規表現

正規表現を含んだリネームにはパイプで処理しないとできません。 find . -type f | sed -E 'p;s/置換したい文字列/置き換える文字列/g' |xargs -n2 mv

bash ファイル名の一括置換 正規表現

MacのGUIでファイル名を一括置換はできるのですが、 共通するファイル名が必要だったりと条件が絞られてしまいます。 CUIで処理する場合には、正規表現を使えばもっと柔軟な一括置換が可能です。正規表現を含んだリネームにはパイプで処理しないとできません…

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

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

ShellScript インクリメント 健忘録

他の言語だと++が使えますがbashだといつも どうやるんだけ?っとなるんで健忘録で書いときます。 exprコマンド ループ中に使用すると下記の$(())やletより 処理がすごく遅いです。 count=1 count=$(expr $count + 1) # => 2 $(()) count=1 count=$((++count…

Bash ln シンボリックリンクの使い方

シンボリックリンク 特定のファイルやディレクトリを指し示す別のファイルを作成し、 それを通じて元のファイルを参照できるようにする仕組み $ ln -s [シンボリックリンクを作成したいファイルのパス] [シンボリックリンクを置くフォルダのパス] $ ln -s […

bash renameコマンドの使い方 健忘録

$ rename s/キーワード/置換したいキーワード/ ファイル名 検索したファイル名を置換する $ find . -name "*txt" -print0| xargs -0 rename s/ /" "/

bash sed 使い方

概要 コマンド キーワードの前に挿入 sed -e '/検索ワード/i 追加ワード' ファイル名 キーワードの後に挿入 sed -e '/検索ワード/a 追加ワード' ファイル名 指定した行に挿入 sed -e '数字i 追加ワード' ファイル名 指定した行の後に挿入 sed -e '数字a 追加…

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

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

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

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