以前のリビジョンの文書です
====== bashの備忘録 ====== ---- ===== 標準出力・標準エラー出力 ===== File Descriptorは * 標準出力 : 1 * 標準エラー出力 : 2 ===== scriptがあるディレクトリの絶対パスをとる ===== <code bash> FILE_DIR=$(cd $(dirname $BASH_SOURCE); pwd) </code> * $BASH_SOURCE : scriptの絶対パス * cd しているが、scriptの処理が終わった後には元のdirectoryに戻っている ===== 1日前の日付を取得 ===== <code bash> date -d '1 days ago' </code> とする。1をNに変えれば、N日前。 ===== aliasの一時解除 ===== \lsのように、コマンドの前に"\"をつければ良い。 ===== 連番ファイルの後半だけ削除 ===== file_0.txt\\ file_1.txt\\ ・\\ ・\\ ・\\ file_99.txt\\ があるうち、50−99までを削除したいとする。 ''ls -v file_* | tail -n 50 | xargs rm '' * ''ls -v file_*'' で数字順にls出力 * ''| tail -n 50''で前の出力の後ろ50を切り出す * ''| xargs rm''で前の出力をパラメータとして受け取り、rmに渡している はじめ、lsがaliasされてうまくいかなかったが"\ls"としてやるとうまくいった。 ===== 変数から一部を抜き出す ===== ''${PARNAME:OFFSET:LENGTH}'' によって変数の中から、指定した箇所(Offset)からある文字数(length)だけを抜き出してくることができる。\\ 例: <code bash> HOGE="abc123def" ## 頭から3文字を抜き出して新しい変数FUGE1に詰める FUGE1=`echo ${HOGE:0:3}` ## 2文字目から最後までを抜き出す(LENGTHを省略すると最後まで指定したことになる) FUGE2=`echo ${HOGE:1}` </code>