端末は入力(作業)要求を停止しません。

端末は入力(作業)要求を停止しません。

私は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 を押すと停止します。私がなぜこれをするのかわからないので、助けてくれてとても感謝します。

また、シェル関数やスクリプトを使用する方が効率的だと思いますが、割り当てには別名を使用する必要があります。

答え1

上記のコメントで述べたように、fi1つがありません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
$

関連情報