コマンド置換$(...) の 中に制御構文(ifやwhile)を
入れて更にその中にヒアストリング<<<を使うとbash 4.0.0のみシンタックスエラーが発生する。
- パッチバージョンが上がった bash 4.0.44ではこのバグは修正されている。
- ヒアストリングではなく
echo(1)などではエラーは発生しない。 - ヒアドキュメントでは発生しない。
下記のatest.shを用意する。
| # スクレイピング | |
| seq 500 \ | |
| | while read n;do echo "$n"; w3m -dump -cols 999 "https://ja.wikipedia.org/wiki/$n" | sed -n '/性質\[編集\]/,/\[編集\]/p' > "$n" ;done | |
| # 最も性質が多い数は。。 | |
| seq 500 | while read f; do echo -n "$f "; cat "$f" | grep '•' | grep -c .; done | sort -k2,2n | |
| . | |
| . | |
| . |
| #!/usr/bin/env egison | |
| (define $main | |
| (lambda [$args] | |
| (each display | |
| (farray-same2 farray)))) | |
| (define $farray | |
| (filter 1#(eq? (length %1) 3) | |
| (map (p-f $) (take 100 nats)))) |
| #!/bin/bash | |
| THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-${(%):-%N}}")"; pwd)" | |
| files=("$(find ${THIS_DIR-}/lib -type f)") | |
| class_lines=("$(printf '%s\n' "${files[@]}" \ | |
| | xargs -n 1 grep -m 1 -E '^(abstract )?class' \ | |
| | sed -r 's/^.*class ([A-Za-z]+)/\1/')") | |
| class_names=("$(printf '%s\n' "${class_lines[@]}" | awk '{print $1}')") | |
| remove_buildin_classes () { |
| " Clipboard integration by Operating System Controls from Vim | |
| " Usage: | |
| " Yank something and run :OscCopy | |
| " or | |
| " Copy range in visual mode and run :'<,'>OscCopyRange | |
| " From: https://stackoverflow.com/questions/1533565/how-to-get-visually-selected-text-in-vimscript | |
| function! GetVisualSelection() | |
| let [lnum1, col1] = getpos("'<")[1:2] |
| import java.util.HashMap; | |
| import java.util.Map; | |
| class Test { | |
| public static void main(String args[]) { | |
| int num = 100; | |
| Map<Integer, Boolean> list = new HashMap<Integer, Boolean>(); | |
| for (int i = 2; i <= num; i++) { | |
| list.put(i, true); | |
| } |
| ; 【話題の一行問題】東大数学2015第5問【2015Cmが偶数】をEgisonで解く | |
| ; https://www.youtube.com/watch?v=MfrT_QGCkRo | |
| (define $main | |
| (lambda [$argv] | |
| (each display | |
| (match | |
| (map 1#(2#[%1 %2 (modulo %2 2)] %1 (comb 2015 %1)) | |
| (take 2015 nats)) | |
| (list [integer integer integer]) |
| Q () | |
| { | |
| type Q | sed '1d;$aQ' | |
| } | |
| Q |
| yes 山田エルフ \ | |
| | head -n 5 \ | |
| | awk -vFS= -vOFS=" " 'NR==1{system("echo "$0"|rev|tr -d \\\\n");print $2$3$4$5};NR<6{s=$(NR+1);for(i=0;i<4-NR;i++)printf OFS;printf s;for(i=1;i<NR;i++)printf OFS;printf s;for(i=1;i<NR;i++)printf OFS;print s;}' | |
| # -- Result | |
| # フルエ田山田エルフ | |
| # 田田田 | |
| # エ エ エ | |
| # ル ル ル | |
| # フ フ フ |
| ``` | |
| mkfifo /tmp/p{1..4} 2>/dev/null; sleep 1; while true; do echo ハゲ; sleep 1 ;done | tee /tmp/p1 | |
| stdbuf -oL cat /tmp/p1 | stdbuf -oL sed -n = | tee /tmp/p2 | |
| stdbuf -oL cat /tmp/p2 | stdbuf -oL factor | stdbuf -oL tee /tmp/p3 | |
| stdbuf -oL cat /tmp/p3 | while read n; do echo $n | awk 'NF==2{print $2;}'; done | |
| ``` | |
| cat cmd | xpanes -e | |
| cure precures | cure tr '[:precure_name:]' '[:girl_name:]' | nl | awk '{print "sleep "$1"; cure echo -p "$2" | say -v Kyoko"}' | xpanes -e |