メモ: ヒアドキュメント
ストレージのベンチマークを測定するコマンドにfioがある
調べてみると実行時のオプションとか
結果の出力結果とか、とても情報が多い
出力結果をうまく処理してくれるラッパーを作ってくれてる人がいるのだが、
シェルスクリプトで見たことない書き方があった
fioでCrystalDiskMarkっぽい計測を行うコマンドを作った
fioでCrystalDiskMarkっぽい計測を行うコマンドを作った - ぶていのログでぶログ
fio-cdm/fio-cdm
fio-cdm/fio-cdm at master · buty4649/fio-cdm · GitHub
このあたり
# see. http://www.winkey.jp/article.php/20110310142828679 cat <<_EOL_ | fio - | fio2cdm [global] ioengine=libaio iodepth=1 size=1g direct=1 runtime=60 directory=${TARGET} filename=.fio-diskmark ~中略~ [Rand-Write-4K-QD32] iodepth=32 bs=4k rw=randwrite stonewall _EOL_
ヒアドキュメントというらしい。
使い勝手が良さそうなのでリンクのメモ。
ヒアドキュメント(別の呼び方としてヒア文字列、heredocなど)は、文字列リテラルを、シェルスクリプトやプログラミング言語のソースコード中に埋め込むための1つの方法である。
In computing, a here document (here-document, here-text, heredoc, hereis, here-string or here-script) is a file literal or input stream literal: it is a section of a source code file that is treated as if it were a separate file.
bashのヒアドキュメントを活用する - Qiita
知ると便利なヒアドキュメント - Qiita
シェルスクリプトでヒアドキュメントを使う様々な方法 (bash / zsh)|Everything you do is practice
bashのメモ ( < << <<< <() ) - なんかやる
17 May 2019追記
awkの組み込み関数もややこしい
機能はman awkで見れる
split(s, a [, r [, seps] ])
Split the string s into the array a and the separators array seps on the regular expression r, and return the number of fields. If r is omitted, FS is used instead. The arrays a and seps are cleared
first. seps[i] is the field separator matched by r between a[i] and a[i+1]. If r is a single space, then leading whitespace in s goes into the extra array element seps[0] and trailing whitespace
goes into the extra array element seps[n], where n is the return value of split(s, a, r, seps). Splitting behaves identically to field splitting, described above.
gensub(r, s, h [, t])
Search the target string t for matches of the regular expression r. If h is a string beginning with g or G, then replace all matches of r with s. Otherwise, h is a number indicating which match of r
to replace. If t is not supplied, use $0 instead. Within the replacement text s, the sequence \n, where n is a digit from 1 to 9, may be used to indicate just the text that matched the n'th parenthesized subexpression. The sequence \0 represents the entire matched text, as does the character &. Unlike sub() and gsub(), the modified string is returned as the result of the function, and the original target string is not changed.
追記ここまで