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