Bash 如何将lat long从文件输入程序注释行

Bash 如何将lat long从文件输入程序注释行,bash,shell,Bash,Shell,我有一个程序,要运行该程序,我必须给出终端的纬度和经度,如下所示: -7.4201 41 -7.3201 46 -7.4201 43 -7.2201 45 -7.8201 47 -7.7201 43 $access\u litho-p lat long 我将所有lat long存储在一个文件中,如下所示: -7.4201 41 -7.3201 46 -7.4201 43 -7.2201 45 -7.8201 47 -7.7201 43 我尝试了以下代码: #/垃圾箱/垃圾箱 访问_lith

我有一个程序,要运行该程序,我必须给出终端的纬度和经度,如下所示:

-7.4201 41
-7.3201 46
-7.4201 43
-7.2201 45
-7.8201 47
-7.7201 43
$access\u litho-p lat long
我将所有lat long存储在一个文件中,如下所示:

-7.4201 41
-7.3201 46
-7.4201 43
-7.2201 45
-7.8201 47
-7.7201 43
我尝试了以下代码:

#/垃圾箱/垃圾箱

访问_litho-p input_file.txt您可以这样做:

#/垃圾箱/垃圾箱
读lat-lon时;做
访问岩性-p“$lat”$lon”;
完成
我们使用
while
循环,使用
read
命令、
lat
lon
从标准输入读取2个输入。
read
命令足够智能,可以识别一行上的两个输入,因为它们由空格分隔

然后,对于每个
read
操作,我们执行
access\u litho-p“$lat”“$lon”


为了让脚本读取您的输入,我们在
循环结束时传递文件名,使用
您可以这样做:

#/垃圾箱/垃圾箱
读lat-lon时;做
访问岩性-p“$lat”$lon”;
完成
我们使用
while
循环,使用
read
命令、
lat
lon
从标准输入读取2个输入。
read
命令足够智能,可以识别一行上的两个输入,因为它们由空格分隔

然后,对于每个
read
操作,我们执行
access\u litho-p“$lat”“$lon”


为了让脚本读取您的输入,我们在
while
循环的末尾传递文件名,使用
while read-r lat lon | |[-n“$lon”];访问_litho-p“$lat”$lon”;完成
@DavidC.Rankin您能解释一下code@rehman请参阅以了解while read循环是如何工作的。@DavidC.Rankin,
|[-n“$lon”]
用于什么?以处理没有
'\n'
字符的非POSIX文件结尾。如果您只是简单地使用,
while read-r line do
在这种情况下,您将跳过最后一行数据,因为看不到
'\n'
lat
lon
变量将被填充,因此通过添加检查
[-n“$lon”]
您正在测试
lon
,在这种情况下,列表中的最后一个变量被填充(这确保所有先前的变量,例如
lat
也被填充);访问_litho-p“$lat”$lon”;完成
@DavidC.Rankin您能解释一下code@rehman请参阅以了解while read循环是如何工作的。@DavidC.Rankin,
|[-n“$lon”]
用于什么?以处理没有
'\n'
字符的非POSIX文件结尾。如果您只是简单地使用,
while read-r line do
在这种情况下,您将跳过最后一行数据,因为看不到
'\n'
lat
lon
变量将已填充,因此通过添加检查
[-n“$lon”]
您正在测试
lon
,列表中的最后一个变量已填充(这确保所有先前的变量,例如
lat
也已填充)在这种情况下,如何在执行非常长的时间后在输出文件中插入空行您可以只添加
echo”“>>文件名
如何在执行非常长的时间后在输出文件中插入空行您可以只添加
echo”“>>文件名