2016-07-28 1 views
0

가 나는 다음과 같은 기능이 떠들썩한 파티에 쓴 :이 기능은 정말 잘 작동ksh에서이 함수를 사용하는 방법은 무엇입니까?

msend() { f=$(mktemp) ; rm -f $f ; if [ "$#" -gt 1 ] ; then ; d_zip=true ; zip $f "[email protected]";filename="$f.zip" ; uuencode $f $filename | mail -s "$filename" $mail_addr ; else ; uuencode $1 $1 | mail -s "$1" $mail_addr ; fi ; } 

을하지만 문제가이 배쉬로 작성하다 만 KSH의 사용을 허용 일부 단말기 내가이 번역하고 싶습니다있다 ksh에 대한 기능을 제공하기 위해이 상황을 극복하기위한 도움을 주시면 감사하겠습니다.

나는 귀하의 이메일로 다음과 같은 변수를 선언 먼저이 기능을 사용하면 한 사용하는 것이 더 명확하게하기 위해 주문 :

mail_addr = YOUR_EMAIL_ADDRESS.

+1

'then' 키워드 다음에 나오는 의심스러운 세미콜론을 제외하고는 완벽하게 유효한'ksh'처럼 보입니다. 이것은'bash' 또는'ksh'에서 구문 에러가되어야합니다. – chepner

+0

예. ksh에서이 함수를 사용하는 방법을 찾으려는 이유가 있습니다. – neo33

+0

@chepner 친절하게 ksh에서 함수를 제공하면 대답을 받아 들일 것입니다. 조금 어렵습니다. 내가 bash에 대해 더 잘 알고 있기 때문에, – neo33

답변

1

는 KSH의 93u +에 충돌하지 않습니다 : 원래 게시물에

msend() { 
    f=$(mktemp) 
    rm -f "$f" 
    if [ "$#" -gt 1 ]; then 
    d_zip=true 
    zip "$f" "[email protected]" 
    filename="$f.zip" 
    uuencode "$f" "$filename" | mail -s "$filename" "$mail_addr" 
    else 
    uuencode "$1 $1" | mail -s "$1" "$mail_addr" 
    fi 
} 

유일한 기이는 가짜 ;했다. 이것이 실패하면 명령 및 인수와 관련이 있으며 구문이 아닙니다.

+0

고마워요 내가 뭘 찾고 있었는지, 정말 지원에 감사드립니다, – neo33