技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的なメモです。とにかく短く、結論だけ書いていきます。

shell

Bashで変数展開やコマンド置換しないでヒアドキュメントしたい

クリップボードの内容をSSHで接続した先のファイルに保存したい場合にヒアドキュメントを良く使うのですが、 ↓こういう書き方をすると、""で囲った時と同じように変数展開されたりコマンド置換されてしまい、シェルスクリプトのコピーなどでは都合が悪いです…

シェルでtrimする方法

実はechoするだけでtrimできてしまうという目から鱗。 $ S=" Hello World " $ echo $S Hello World sedやawkでやるより全然楽です。

シェルの$括弧

$(コマンド) バッククォートで括ったのと同様にコマンドを実行できる。 ネストできたり開始終了が分かりやすいので、こっちを使ったほうが良い $((演算)) exprでやったような演算ができる。$(expr 1 + 1) とやるよりスマート

bashによく設定するsetオプション

set -u 未定義の変数を参照するとエラー・メッセージを表示する set -e コマンドが0以外のステータスで終了した場合,一部の場合を除いて即座に終了する set -C 存在するファイルに対して、>でリダイレクトしたらエラーにする

postgreSQLに接続するシェルのテンプレート

個人的メモ。 たくさんのDBにまとめて同じSQLを実行するテンプレート。 SQLをヒアドキュメントで書くようにしてるけど、長くなるようだったら外出しにしよう。 #!/bin/sh #DBサーバとインスタンスの指定 SETTINGS=("dbserv01 db01" "dbserv01 db02" "dbserv0…

大量のファイルの文字コードを一括で変更する

個人的メモ。 ワイルドカード指定でファイルの一覧を取ってきてforで回しながら文字コードを変換する。 for f in data/**/*.csv; do iconv -f MS932 -t UTF-8 "$f" > "$f.utf8"; done