狠狠撸
Submit Search
第2回 学生LT
?
0 likes
?
302 views
Tomoyui Koyama
Follow
@Microsoft 品川本社, 学生LT, 2017-07-29, bashのブレース展開について話した.
Read less
Read more
1 of 22
Download now
Download to read offline
More Related Content
第2回 学生LT
1.
ブレース展開のススメ Tomoyuki KOYAMA
2.
$ whoami ?Name: Tomoyuki
KOYAMA ?Twitter: @tmyk_kym ?BLOG: http://blog.koyama.me/
3.
シェル?使ってますか?
4.
シェル? ? シェルといえば…? bash zsh
dash csh … ? 入力インターフェース ? [コマンド]ー>[シェル] ー [システムコール]ー>[システム 操作]
5.
(問) カレントディレクトリに? 1~100のディレクトリ? を作成せよ.
6.
一般的な解答 ?phpの場合 ?mkdir.php? <?php? for($i=0;$i<=100;$i++){? shell_exec( mkdir .$i);? }? ?> ?$
php mkdir.php
7.
面倒くない??
8.
シェルを使った解答 ?Bashの場合 ?$ for i
in $(seq 1 100); do? mkdir $i? done
9.
解説 ? for (ループ変数:よくあるi)
in (1から100まで)? do? (ループする処理)? done
10.
DEMO
11.
まだ面倒(??ω?缚)
12.
シェルを使った解答(改) ? $ mkdir
{1..100} ? Bashの「ブレース展開」を使う ? {1..100}は? 「1 2 3 4 … 98 99 100」? に展開されて実行される
13.
(役に立たないそう…)
14.
ブレース展開は? 応用すると便利になる!!
15.
ブレース展開の応用例1 ? ファイルa.txt z.txtを作成する? $
touch {a..z}.txt? -> touch a.txt b.txt c.txt … y.txt z.txt ? 数学の展開に似ている!!? 4(a+b+c+d+ … +x+y+z)? = 4a + 4b + 4c + … + 4x + 4y + 4z
16.
ブレース展開の応用例2 ? ファイル Report_01.java
Report_20.java を作 成する? $ touch Report_{01..20}.java # bash 4.4で確認
17.
ブレース展開の応用例3 ? 単語区切りでブレース展開も出来る ? $
echo 5000兆円{ほしい,たべたい,うまい}? -> 5000兆円ほしい 5000兆円たべたい 5000兆円うまい ? $ echo Linux{,,,}? Linux Linux Linux Linux
18.
??? すし
19.
たくさん欲しい
20.
? ?$ echo ?{,,,,,}
←ずっと,打ち込むの つらい? -> ? ? ? ? ? ?
21.
? ?$ eval echo
?{$(yes , ? head -n 5000000000000000 ? tr -d 'n')}
22.
実行したらフリーズした
Download