da908dbf75337398338adbe1a1252c1b46f77d1e
Linux/ShellScript/ArgWithSpace.md
... | ... | @@ -0,0 +1,67 @@ |
1 | +[[_TOC_]] |
|
2 | + |
|
3 | +# 概要 |
|
4 | +- 空白を含む引き数をループ処理する場合、ダブルクォーテーションでくくる必要がある。 |
|
5 | + |
|
6 | +# ソース |
|
7 | +```bash |
|
8 | +#!/bin/bash |
|
9 | + |
|
10 | +echo "for arg in \$@:" |
|
11 | +for arg in $@ |
|
12 | +do |
|
13 | + echo "${arg}" |
|
14 | +done |
|
15 | + |
|
16 | +echo |
|
17 | + |
|
18 | +echo "for arg in \$*:" |
|
19 | +for arg in $* |
|
20 | +do |
|
21 | + echo "${arg}" |
|
22 | +done |
|
23 | + |
|
24 | +echo |
|
25 | + |
|
26 | +echo "for arg in \"\$@\":" |
|
27 | +for arg in "$@" |
|
28 | +do |
|
29 | + echo "${arg}" |
|
30 | +done |
|
31 | + |
|
32 | +echo |
|
33 | + |
|
34 | +echo "for arg in \"\$*\":" |
|
35 | +for arg in "$*" |
|
36 | +do |
|
37 | + echo "${arg}" |
|
38 | +done |
|
39 | +``` |
|
40 | + |
|
41 | +# 実行結果 |
|
42 | +``` |
|
43 | +$ ./testArg.sh "aaa bbb" 'ccc ddd' eee\ fff |
|
44 | +for arg in $@: |
|
45 | +aaa |
|
46 | +bbb |
|
47 | +ccc |
|
48 | +ddd |
|
49 | +eee |
|
50 | +fff |
|
51 | + |
|
52 | +for arg in $*: |
|
53 | +aaa |
|
54 | +bbb |
|
55 | +ccc |
|
56 | +ddd |
|
57 | +eee |
|
58 | +fff |
|
59 | + |
|
60 | +for arg in "$@": |
|
61 | +aaa bbb |
|
62 | +ccc ddd |
|
63 | +eee fff |
|
64 | + |
|
65 | +for arg in "$*": |
|
66 | +aaa bbb ccc ddd eee fff |
|
67 | +``` |
Linux/ShellScript/BackupWithReport.md
... | ... | @@ -0,0 +1,53 @@ |
1 | +[[_TOC_]] |
|
2 | + |
|
3 | +# 概要 |
|
4 | +- バックアップ終了時に、既定アカウントにレポートをメールする。 |
|
5 | +- nohup と組み合わせて使う想定。 |
|
6 | +``` |
|
7 | +# nohup ~/BackupWithReport.sh dest/ file1 file2 file3 & |
|
8 | +``` |
|
9 | + |
|
10 | +# ソース |
|
11 | +- [BackupWithReport.zip](BackupWithReport.zip) |
|
12 | +```bash |
|
13 | +#!/bin/bash |
|
14 | +# 目的ディレクトリに、指定されたファイル群をコピーする。 |
|
15 | +# 処理終了時に、開始時刻, 終了時刻, 処理ファイル名を既定のアドレスへメールする。 |
|
16 | + |
|
17 | +account=root |
|
18 | +scriptname="${0##*/}" |
|
19 | + |
|
20 | +if [ $# -lt 2 ]; then |
|
21 | + cat << EOL |
|
22 | +説明: 目的ディレクトリに、指定されたファイル群をコピーする。 |
|
23 | + 処理終了時にレポートを既定のアカウント(${account})へメールする。 |
|
24 | +使用法: ${scriptname} <dest> <file1> <file2> ... |
|
25 | +EOL |
|
26 | + exit 1 |
|
27 | +fi |
|
28 | + |
|
29 | +report=`mktemp` |
|
30 | +dest="$1" |
|
31 | +shift |
|
32 | + |
|
33 | +echo "Destination:" >> ${report} |
|
34 | +echo "${dest}" >> ${report} |
|
35 | +echo >> ${report} |
|
36 | +echo "Start:" >> ${report} |
|
37 | +date >> ${report} |
|
38 | +echo >> ${report} |
|
39 | +echo "Files:" >> ${report} |
|
40 | + |
|
41 | +for arg in "$@" |
|
42 | +do |
|
43 | + echo "${arg}" >> ${report} |
|
44 | + cp -ruv "${arg}" "${dest}" |
|
45 | +done |
|
46 | +echo >> ${report} |
|
47 | + |
|
48 | +echo "Finish:" >> ${report} |
|
49 | +date >> ${report} |
|
50 | + |
|
51 | +cat ${report} | mail -s "${scriptname} report" ${account} |
|
52 | +rm -f ${report} |
|
53 | +``` |
|
... | ... | \ No newline at end of file |
Linux/ShellScript/Home.md
... | ... | @@ -0,0 +1,3 @@ |
1 | +[[_TOC_]]
|
|
2 | +- [[ArgWithSpace]]
|
|
3 | +- [[BackupWithReport]]
|
Linux/_Sidebar.md
... | ... | @@ -1,6 +1,7 @@ |
1 | 1 | # [[Linux|/Linux/Home]]
|
2 | 2 | - [[Apache|/Linux/Apache/Home]]
|
3 | 3 | - [[Install|/Linux/Install/Home]]
|
4 | +- [[ShellScript|/Linux/ShellScript/Home]]
|
|
4 | 5 | - [[Customize]]
|
5 | 6 | - [[Gollum]]
|
6 | 7 | - [[HardwareInfo]]
|