分页: 1 / 1

简单的shell操作老出错

发表于 : 2012-01-11 11:07
trc007
各位侠客,下面这段shell代码,老是出错,出错的地方见红色字体,不知道是什么原因呢.
#!/bin/csh

#TWO FILES NEEDED: INPUT FLOW ACCUMULATION AND OUTPUT FLOW DIRECTION
#30 arc-second flow accumulation grid
set ACC=lp_accum.asc
set OUT=lp_flow.asc
#output file is 1/8 degree -- change script for other resolutions
#END OF INPUT

#dump top six lines - get number of ROWS and COLS
head -6 $ACC >! temp_head.junk #无法打开 “temp_head.junk” 读取数据: 没有那个文件或目录
#>!这个符号表示什么意思呢???

set ROWS=`gawk '{if(NR==2) print $2}' temp_head.junk` gawk: 命令行:1: 致命错误: 无法以读模式打开文件“temp_head.junk”(没有那个文件或目录)
set COLS=`gawk '{if(NR==1) print $2}' temp_head.junk`

Re: 简单的shell操作老出错

发表于 : 2012-01-12 10:26
tusooa

代码: 全选

set ROWS=`gawk '{if(NR==2) print $2}' temp_head.junk`
是awk找不到那文件。
上边的可能是你csh的问题,不懂。

Re: 简单的shell操作老出错

发表于 : 2012-01-12 12:56
josephyoung
:em06 csh。。。唉,俺bash都研究不精通,没有时间再去学csh了

Re: 简单的shell操作老出错

发表于 : 2012-01-17 13:30
aerofox
在 csh 中,>! 表示输出改向,如果文件已经存在,则覆盖文件。
应该是输出改向,应该是以写方式打开,第一个错误不应该出现,请确认贴到帖子中的代码是你实际采用的代码,最好把原始代码拷贝、粘贴到代码块中。

第二个错误是第一个错误导致的,前面没有生成那个文件,所以打不开。

Re: 简单的shell操作老出错

发表于 : 2012-01-17 23:32
tusooa
aerofox 写了:在 csh 中,>! 表示输出改向,如果文件已经存在,则覆盖文件。
应该是输出改向,应该是以写方式打开,第一个错误不应该出现,请确认贴到帖子中的代码是你实际采用的代码,最好把原始代码拷贝、粘贴到代码块中。

第二个错误是第一个错误导致的,前面没有生成那个文件,所以打不开。
很可能是dir/file的形式,而且dir/不存在