저는 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
$