我对 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
$