编辑:改变了动态计算变量名的要求,因为我的用例并不严格需要这个,并且提供了一个适合我的解决方案。
这可能无法做到,但可以这样做:
我有一个 bash 脚本,它对输入文件(即 ASCII xyz(纬度、经度、深度)三元组)进行一些格式化和文件类型转换,并创建各种输出文件类型。我试图避免每次编写类似这样的脚本时都要处理输出文件名;我想我正在尝试找到一种计算输出文件名的方法全球在我的系统上给出任何输入文件名,可以通过export
在 bashrc 中添加“输出文件名后缀”或者在我的脚本中获取的其他文件中添加。
例如,在典型的脚本中,我会根据命令行给出的输入文件动态构建输出文件名:
INPUT=$1
INPUT_SUFFIX=`echo $INPUT | cut -d. -f2`
INPUT_BASE=$(basename $INPUT .$INPUT_SUFFIX)
OUTPUT_TEXT="${INPUT_BASE}txt"
OUTPUT_TIFF="${INPUT_BASE}tif"
OUTPUT_GRID="${INPUT_BASE}grd"
#...etc, plus other output formats
我正在尝试找到一种方法来避免在每个脚本中都进行这些繁琐的输出文件名定义。我知道每次我都可以简单地复制和粘贴代码,但定义一次输出文件名的构造方式并在整个系统中全局定义输出文件名会更有效。
因此任何我编写的脚本,对于任何值$1
,像$OUTPUT_TIFF
已经根据输入动态计算,结果为“${1}.tif”。