csh脚本出错

时间:2010-05-31 09:48:48

标签: csh tcsh

我正在使用C-Shell,我正在尝试运行此脚本

set callsTo = "`cut -d" " -f2 ${1}`"
echo $callsTo

cut从文件中接收数据,这是第一个参数:

> ./myscript data

我每行只需要第二个字段:-f2

之后,我想检查数据是否已存储,但是我收到了或无法匹配的错误。或空行。我的剧本出了什么问题?

当我使用#! /bin/tcsh -f时,我收到此消息

 tcsh [ -bcdefilmnqstvVxX ] [ argument ... ]

3 个答案:

答案 0 :(得分:1)

双引号不会像那样嵌套。

试试这个:

set callsTo = "`cut -d' ' -f2 ${1}`"
  

当我使用#时! / bin / tcsh -f我收到此消息

     

tcsh [-bcdefilmnqstvVxX] [参数...]

这很奇怪。 -f之后是否可能存在一个流浪字符,或许是Windows风格的行结尾的'\r'字符? head -1 *foo*.tcsh | od -c的输出是什么?

答案 1 :(得分:0)

我不知道tcsh但不应该知道这行

set callsTo = "`cut -d" " -f2 ${1}`"

set callsTo = `cut -d" " -f2 ${1}`?

在bash中,我会这样做:

callsTo=`cut -d' ' -f2 $1`?

希望这有帮助。

答案 2 :(得分:0)

set filename = echo ${1}|cut -f1 -d'#'
echo $ filename
试试这个