터미널이 입력(작업) 요청을 멈추지 않습니다.

터미널이 입력(작업) 요청을 멈추지 않습니다.

저는 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하나가 누락되었습니다 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
$

관련 정보