我有一个有点复杂的问题,我希望我能够清楚地表达出来。
我有一个 bash 脚本,它为命令行选项创建参数。
我的脚本
./align_v1.1 reference.tif -te -tr -t_srs
产生(通过内部回声)以下字符串
-te -7575475.504 -2950763.205 -6304972.004 -2027871.240 -tr 1110.579983028509332 -1110.579983028509332 -t_srs '+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs '
此字符串可用作命令行选项
gdalwarp -overwrite -te -7575475.504 -2950763.205 -6304972.004 -2027871.240 -tr 1110.579983028509332 -1110.579983028509332 -t_srs '+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs ' input.tif output.tif
所以我应该能够通过以下方式传递相同的字符串
gdalwarp -overwrite $(./align_v1.1 reference.tif -te -tr -t_srs) input.tif output.tif
但我收到以下错误
ERROR 1: Translating source or target SRS failed:
'+proj=sinu
在我看来,当 gdalwarp'
来自 时,它并没有将前导视为引号 $()
,但它仅使用 echo 就可以很好地打印。
是否有任何解决方案可以强制$()
产生一个不会停止的字符串'+proj=sinu
或者
是否有任何解决方案可以强制$()
生成可以传递给 gdalwarp 的整个字符串?
我已经尝试过 printf 而不是 echo
#!/bin/bash -c ' ...... ' _
但我认为是$()