终端不会停止提示输入(作业)

终端不会停止提示输入(作业)

我对 UNIX 操作系统非常陌生,因此在作业中遇到了一些困难。

我想要完成的是在别名中使用 if/then 语句。这是我写的代码...

alias getname='read filename'


alias vfile='getname; if [ ! -f $filename ]; then echo "Irregular file";'

当我将此用于测试时,我没有收到错误,但是当我运行命令时,它不会停止提示输入,如下所示......

> 1a.out
>
>
>
>
> -bash: syntax error: unexpected end of file

正如你所看到的,只有当我按下 Control d 时它才会停止。我不知道为什么要这样做,如果提供任何帮助,我们将不胜感激。

另外,我完全认为使用 shell 函数或脚本会更有效,但我需要使用别名来进行分配。

答案1

就像我在上面的评论中提到的,你缺少fi一个if

$ type getname
getname is aliased to `read filename'

$ type vfile
vfile is aliased to `getname; if [ ! -f $filename ]; then echo "Irregular file"; fi'

然后:

$ vfile
doesNotExist
Irregular file
$ vfile
/etc/passwd
$

相关内容