ShellScript? 概要 †
疑問 †
問題集 †
DQ, SQ, 何もなしの違い †
A=test B=$A echo hoge # Bに"test"が入って、hogeが標準出力 B="$A echo hoge" # Bに"test echo hoge"が入る B='$A echo hoge' # Bに"$A echo hoge"が入る 並列実行 †# -a - でパイプから入力を受け取る $ ls * | parallel -a - --dry-run echo echo a echo b # {} で場所を指定できる
$ ls * | parallel -a - --dry-run echo {} end
echo a end
echo b end
# アトミックな処理をしたいなら '' で囲む。というか基本的には囲んだほうがいい
$ ls * | parallel -a - --dry-run 'echo {} 1; echo {} 2'
echo a 1; echo a 2
echo b 1; echo b 2
echo test.xt 1; echo test.xt 2
echo x.txt 1; echo x.txt 2
# {.} で basename が取れる。test.sh なら test
$ echo test.sh | parallel -a - --dry-run echo {.}
sh -c echo test
# zip の例
$ ls *.zip | parallel -a - --dry-run 'mkdir {.}; unzip {} -d {.}; rm {}'
Tips †
|