如run scala启动配置文件中定义好的scala路径中的scala
run源码
#!/bin/bash
set -o nounset
set -o errexit
basedir=$(dirname $0)
declare -a args
for((i=0;i<=$#;i++))
do
eval args[${i}]=\"\${${i}}\"
done
function main()
{
getProperties "${basedir}/../conf/run.conf" keys values
#get config example : value=$(findValue key keys values)
# add code here
echo to findvalue ${args[1]} in ${keys[@]} >&2
echo the values is ${values[@]} >&2
program=$(findValue ${args[1]} keys values)
shift
shift
echo to run ${program} "$@" >&2
${program} "$@"
}
function getProperties()
{
localfilename="$1"
localkeys="$2"
localvalues="$3"
unset ${localkeys}
unset ${localvalues}
locali=0
if [[ -f "${localfilename}" ]]; then
while read line
do
if [[ "${line:0:1}" != "[" ]]; then
localkey=${line%%=*}
localvalue=${line#*=}
if [[ "${localkey}" != "" ]]; then
eval ${localkeys}[${locali}]=\"${localkey}\"
eval ${localvalues}[${locali}]=\"${localvalue}\"
let locali=${locali}+1
fi
fi
done < "${localfilename}"
fi
}
function findValue()
{
localkey="$1"
eval localkeys=(\"\${$2[@]}\")
eval localvalues=(\"\${$3[@]}\")
for((locali=0; locali<${#localkeys[@]}; locali++))
do
if [[ "${localkey}" == "${localkeys[${locali}]}" ]]; then
localvalue="${localvalues[${locali}]}"
break
fi
done
echo ${localvalue}
}
main "${args[@]}"
run.conf配置例:
scala=/sysdir/scala-2.10.3/bin/scala
scalac=/sysdir/scala-2.10.3/bin/scalac
spark-shell=/sysdir/spark-0.9.1-bin-hadoop2/bin/spark-shell
shark=/sysdir/shark-0.9/bin/shark
hive=/sysdir/hive-0.11/bin/hive