我正在使用C-Shell,我正在尝试运行此脚本
set callsTo = "`cut -d" " -f2 ${1}`"
echo $callsTo
cut从文件中接收数据,这是第一个参数:
> ./myscript data
我每行只需要第二个字段:-f2
。
之后,我想检查数据是否已存储,但是我收到了或无法匹配的错误。或空行。我的剧本出了什么问题?
当我使用#! /bin/tcsh -f
时,我收到此消息
tcsh [ -bcdefilmnqstvVxX ] [ argument ... ]
答案 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
试试这个