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]]