タグ

bashとエスケープに関するiwwのブックマーク (3)

  • readコマンドで 矢印キー や Ctrl+x などの入力を読み取る - たにしきんぐダム

    この記事は CAMPHOR- Advent Calendar 2015 の2日目の記事です. シェルで標準入力を読み取るコマンドといったらreadコマンドがあります. readの概要 read Man Page | Bash | SS64.com readコマンドはシェルの組み込みコマンドで 標準入力を読み取り 改行文字までまたはEOFまで読み込み、 引数に変数が指定されていた場合は入力値をその変数に格納します. readコマンドの区切り文字はシェル変数である$IFSに格納されている文字が利用され、引数に複数の変数が指定されていた場合は指定された区切り文字で区切って変数に格納されます.(デフォルトでは$' \t\n' スペース・タブ・改行文字) ちなみに入力の区切り文字は\を頭につけることでエスケープすることができます. 便利っちゃ便利だけど\がエスケープ文字として解釈されてしまうので不便

    readコマンドで 矢印キー や Ctrl+x などの入力を読み取る - たにしきんぐダム
  • Bash scripting

    Bash スクリプトを書くための小技集です. 変数について 文字列のクオート 単語分割 代入 パイプ,サブプロセス テキスト処理 文字列の長さ 文字列の切り出し (substring) 文字列分割 大文字小文字変換 文字列が空か パターンマッチ(グロブ) パターンマッチ(正規表現) 単語単位でパターンマッチ 文字列削除 文字列置換 文字列置換 (正規表現) 数値演算 ファイルシステム 1行ごとに処理 文字列を置換して保存 コマンドが実行可能か ファイル名,拡張子 などを取得 コマンドライン引数 引数を処理する (getopts) 引数を処理する (getopt) プロセスプロセスの終了を監視する 参考 1. 変数について 1.1. 文字列のクオート # " foo=20\" # クオートしない文字列では " をエスケープ foo="20\"" # ダブルクオート中でも " をエスケープ f

  • bashのIFSに改行のみを設定するには - 計算機と戯れる日々

    bashのIFSに改行のみを設定するのにはまった。 シェルスクリプト中でコードとして定義 IFS=' 'もちろんコマンドライン中ではあり得ない表記だ。 ¥’¥n’ これに気がつくまで時間がかかった $'string' の形式を持つ単語は特殊な扱いを受けます。 この単語は string に展開され、 それから ANSI C 標準で仕様が決められている、 バックスラッシュでエスケープされている文字に置き換えられます。 バックスラッシュエスケープシーケンスは、 (もし存在すれば) 以下のようにデコードされます: \n 改行文字 $ echo "foo bar buzz" >> a $ echo "foo bar buzz" >> a $ echo "foo bar buzz" >> a $ cat a foo bar buzz foo bar buzz foo bar buzz $ (IFS=$

    bashのIFSに改行のみを設定するには - 計算機と戯れる日々
  • 1