我正在编写一个Bash脚本来设置一些环境变量,然后启动一个Web服务器。有哪些好的验证检查要添加到脚本中以确保它尽可能是失败证明:
1 #!/bin/bash
2
3 # Allow checking that variables don't get set to empty strings.
4 set -o nounset
5
6 readonly qi_redmine_base="/srv/redmine"
7
8 if test "${qi_redmine_base}" -eq "notset"
9 then
10 »···echo
11 fi
12
13 readonly qi_redmine_etc="/etc/redmine/default"
14
15 if test "${qi_redmine_etc}" -eq "notset"
16 then
17 »···echo
18 fi
19
20
21 readonly RAILS_ETC="${qi_redmine_etc}"
22 export RAILS_ETC
23
24 readonly RAILS_LOG="${qi_redmine_base}/log"
25 export RAILS_LOG
26
27 readonly RAILS_VAR="${qi_redmine_base}"
28 export RAILS_VAR
29
30 readonly RAILS_CACHE="${qi_redmine_base}/tmp"
31 export RAILS_CACHE
32
33 export RAILS_ENV=production
34 export X_DEBIAN_SITEID=default
35
36
37 ruby /usr/share/redmine/script/server webrick -e production
38 if [$? -ne 0]; then
39 echo "Server failed to start"
40 fi
非常感谢任何帮助!
格雷格
答案 0 :(得分:2)
help test
显示字符串的一些可能的测试机会(长度> 0)和未定义的变量。
甚至还有一个构造来定义默认值:
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word is
substituted. Otherwise, the value of parameter is substituted.
${parameter:=word}
Assign Default Values. If parameter is unset or null, the expansion of word is
assigned to parameter. The value of parameter is then substituted. Positional
parameters and special parameters may not be assigned to in this way.
${parameter:?word}
Display Error if Null or Unset. If parameter is null or unset, the expansion of
word (or a message to that effect if word is not present) is written to the
standard error and the shell, if it is not interactive, exits. Otherwise, the
value of parameter is substituted.
${parameter:+word}
Use Alternate Value. If parameter is null or unset, nothing is substituted,
otherwise the expansion of word is substituted.
(引用man bash
)。
一般情况下,您需要解决暂停问题,才能完成任务。