Linux [-f:未找到命令
我正在尝试在bash shell中编写一个处理文件的程序。我必须通过各种方式从命令行调用我的程序,以便他们每次都可以打印特定的列。让我们举一个调用示例:Linux [-f:未找到命令,linux,bash,shell,Linux,Bash,Shell,我正在尝试在bash shell中编写一个处理文件的程序。我必须通过各种方式从命令行调用我的程序,以便他们每次都可以打印特定的列。让我们举一个调用示例: ./prog.sh -f file 我这部分的代码是 if [[( $1 == '-f') && ( $2 == '<file>')]] ; then echo "do stuff and print column" 如果[[($1=='-f')&&($2=='])],那么 echo“制作素材并打印专栏”
./prog.sh -f file
我这部分的代码是
if [[( $1 == '-f') && ( $2 == '<file>')]] ; then
echo "do stuff and print column"
如果[[($1=='-f')&&($2=='])],那么
echo“制作素材并打印专栏”
我确实得到了我想要打印的专栏,但是我也得到了以下警告:
未找到[-f命令
您知道如何删除错误吗?您应该将文件检查重写为测试,这样您的代码将是:
if [[( -f $1 ) && ( $2 == '<file>')]] ; then
echo "do stuff and print column"
如果[[(-f$1)和($2=='')];那么
echo“制作素材并打印专栏”
确保方括号周围有空格。[[
和]
需要是单独的标记。括号不添加任何内容,可以删除。(如果保留括号,两边也需要空格。)
如果[[$1=='-f'&&&$2=='']];那么
echo“制作素材并打印专栏”
fi
值得一提的是,
$2
检查可能不应该在那里。任何字符串都是有效的文件名。请看一看:我无法用该代码重现该错误消息(在GNU Bash 4.3上).你确定这是你代码中导致错误的部分吗?你给出的具体行不会导致错误,但尽管没有工作,这是一个原因非常清楚的错误,对此我们有许多重复的问题,已经回答过了。我不认为这是OP的意思--f
有问题吗那是一面旗帜argument@EliranMalka是的,你说得对,我没看到。
if [[ $1 == '-f' && $2 == '<file>' ]]; then
echo "do stuff and print column"
fi