add RunOrEcho function

This commit is contained in:
张壹 2020-04-26 12:09:20 +08:00
parent 1da2101cb2
commit 86d0937b01

View File

@ -3,6 +3,27 @@
. gmt_shell_functions.sh
# 包含dispOption脚本
. dispOptions
# 定义一个函数 执行输入的语句或者将其显示在屏幕上
RunOrEcho()
{
first_str=`echo ${2// /''}`
if [[ x${3} != x ]]; then
sec_str=`echo ${3// /''}`
fi
if [[ ${1} == 1 ]]; then
${first_str}
if [[ x${3} != x ]]; then
${sec_str}
fi
else
if [[ x${3} != x ]]; then
printf "%s\n%s\n" "${first_str}" "${sec_str}"
else
printf "%s\n" "${first_str}"
fi
fi
}
# GMT显示平面数据脚本输入文件为网格文件没有包含网格化语句因为网格化过程中的情况多样化建议在其他脚本中个别添加再调用此脚本
# 准备几个常用的排版参数组 记录的参数包括 图片的宽度 默认坐标标示设定 色标位置 色标的大小 标示字体大小
com_layouts=("1.5i,WesNZ,0.1i/-0.2i,1.3i/0.05i+h,10.5p" \
@ -161,32 +182,19 @@ else
fi
# 设置绘图参数
if [[ ${run_command} == 0 && ${from_open} == '>' ]]; then
echo "gmt gmtset \
FONT_ANNOT_PRIMARY=${layouts[4]},Times-Roman,black \
MAP_FRAME_PEN=thinnest,black \
MAP_GRID_PEN_PRIMARY=thinnest,black \
MAP_TICK_PEN_PRIMARY=thinnest,black \
MAP_TICK_LENGTH_PRIMARY=1p/0.5p \
MAP_TITLE_OFFSET=7.5p \
MAP_GRID_CROSS_SIZE_PRIMARY=2p \
FONT_LABEL=${layouts[4]},Times-Roman,black \
MAP_FRAME_AXES=${frameset} \
MAP_LABEL_OFFSET=2.5p \
MAP_ANNOT_OFFSET_PRIMARY=2.5p"
else
gmt gmtset \
FONT_ANNOT_PRIMARY=${layouts[4]},Times-Roman,black \
MAP_FRAME_PEN=thinnest,black \
MAP_GRID_PEN_PRIMARY=thinnest,black \
MAP_TICK_PEN_PRIMARY=thinnest,black \
MAP_TICK_LENGTH_PRIMARY=1p/0.5p \
MAP_TITLE_OFFSET=7.5p \
MAP_GRID_CROSS_SIZE_PRIMARY=2p \
FONT_LABEL=${layouts[4]},Times-Roman,black \
MAP_FRAME_AXES=${frameset} \
MAP_LABEL_OFFSET=2.5p \
MAP_ANNOT_OFFSET_PRIMARY=2.5p
if [[ ${from_open} == '>' ]]; then
RunOrEcho ${run_command} "gmt gmtset \
FONT_ANNOT_PRIMARY=${layouts[4]},Times-Roman,black \
MAP_FRAME_PEN=thinnest,black \
MAP_GRID_PEN_PRIMARY=thinnest,black \
MAP_TICK_PEN_PRIMARY=thinnest,black \
MAP_TICK_LENGTH_PRIMARY=1p/0.5p \
MAP_TITLE_OFFSET=7.5p \
MAP_GRID_CROSS_SIZE_PRIMARY=2p \
FONT_LABEL=${layouts[4]},Times-Roman,black \
MAP_FRAME_AXES=${frameset} \
MAP_LABEL_OFFSET=2.5p \
MAP_ANNOT_OFFSET_PRIMARY=2.5p"
fi
# 处理-B选项的参数
@ -198,26 +206,14 @@ MAP_ANNOT_OFFSET_PRIMARY=2.5p"
axistick[1]=${axistick[1]}g${axistick[1]}
fi
if [[ ${run_command} == 0 ]]; then
echo "gmt grd2cpt ${data} -C${color} -R${range} -Z -D > ${cptfile}"
else
gmt grd2cpt ${data} -C${color} -R${range} -Z -D > ${cptfile}
fi
RunOrEcho ${run_command} "gmt grd2cpt ${data} -C${color} -R${range} -Z -D > ${cptfile}"
if [[ $plotgrad == 1 ]]; then
gradfile=${data%.*}Grad.nc
if [[ $gridData == 'null' ]]; then
if [[ ${run_command} == 0 ]]; then
echo "gmt grdgradient ${data} -G${gradfile} -Nt -A0/45"
else
gmt grdgradient ${data} -G${gradfile} -Nt -A0/45
fi
RunOrEcho ${run_command} "gmt grdgradient ${data} -G${gradfile} -Nt -A0/45"
else
if [[ ${run_command} == 0 ]]; then
echo "gmt grdgradient ${gridData} -G${gradfile} -Nt -A0/45"
else
gmt grdgradient ${gridData} -G${gradfile} -Nt -A0/45
fi
RunOrEcho ${run_command} "gmt grdgradient ${gridData} -G${gradfile} -Nt -A0/45"
fi
if [[ ${run_command} == 0 ]]; then
@ -243,11 +239,7 @@ MAP_ANNOT_OFFSET_PRIMARY=2.5p"
# 画多边形
if [[ $polyfile != 'null' ]]; then
if [[ ${run_command} == 0 ]]; then
echo "gmt psxy ${polyfile} -JX${layouts[0]}/${pic_height}i -W0.25p,black,- -R${range} -L -K -O >> $psfile"
else
gmt psxy ${polyfile} -JX${layouts[0]}/${pic_height}i -W0.25p,black,- -R${range} -L -K -O >> $psfile
fi
RunOrEcho ${run_command} "gmt psxy ${polyfile} -JX${layouts[0]}/${pic_height}i -W0.25p,black,- -R${range} -L -K -O >> $psfile"
fi
#添加号码
@ -267,21 +259,11 @@ MAP_ANNOT_OFFSET_PRIMARY=2.5p"
#如果unit等于km则在cptfile后面添加+Uk
if [[ ${plot_colorbar} == 1 ]]; then
if [[ ${unit} == 'km+Uk' ]]; then
if [[ ${run_command} == 0 ]]; then
echo "gmt psscale -Dx${layouts[2]}+w${layouts[3]} -C${cptfile}+Uk -Bx${bartick} -By+l${unit} \
-X${bar_origin[0]}i -Y${bar_origin[1]}i -O -K >> $psfile"
else
gmt psscale -Dx${layouts[2]}+w${layouts[3]} -C${cptfile}+Uk -Bx${bartick} -By+l${unit} \
-X${bar_origin[0]}i -Y${bar_origin[1]}i -O -K >> $psfile
fi
RunOrEcho ${run_command} "gmt psscale -Dx${layouts[2]}+w${layouts[3]} -C${cptfile}+Uk -Bx${bartick} -By+l${unit} \
-X${bar_origin[0]}i -Y${bar_origin[1]}i -O -K >> $psfile"
else
if [[ ${run_command} == 0 ]]; then
echo "gmt psscale -Dx${layouts[2]}+w${layouts[3]} -C${cptfile} -Bx${bartick} -By+l${unit} \
-X${bar_origin[0]}i -Y${bar_origin[1]}i -O -K >> $psfile"
else
gmt psscale -Dx${layouts[2]}+w${layouts[3]} -C${cptfile} -Bx${bartick} -By+l${unit} \
-X${bar_origin[0]}i -Y${bar_origin[1]}i -O -K >> $psfile
fi
RunOrEcho ${run_command} "gmt psscale -Dx${layouts[2]}+w${layouts[3]} -C${cptfile} -Bx${bartick} -By+l${unit} \
-X${bar_origin[0]}i -Y${bar_origin[1]}i -O -K >> $psfile"
fi
fi
@ -296,25 +278,12 @@ MAP_ANNOT_OFFSET_PRIMARY=2.5p"
fi
# 输出 eps 和 png 文件
if [[ ${run_command} == 0 ]]; then
echo "gmt psconvert $psfile -A -TEG -E300"
else
gmt psconvert $psfile -A -TEG -E300
fi
RunOrEcho ${run_command} "gmt psconvert $psfile -A -TEG -E300"
# 删除临时文件 使用linux终端rm命令
if [[ ${run_command} == 0 ]]; then
echo "rm $cptfile $psfile gmt.history gmt.conf"
else
rm $cptfile $psfile gmt.history gmt.conf
fi
RunOrEcho ${run_command} "rm $cptfile $psfile gmt.history gmt.conf"
if [[ $plotgrad == 1 ]]; then
if [[ ${run_command} == 0 ]]; then
echo "rm $gradfile"
else
rm $gradfile
fi
RunOrEcho ${run_command} "rm $gradfile"
fi
# 在终端显示图像 此命令需要imgcat.sh脚本和iTerm终端