如何在ksh中使用此功能?

时间:2016-07-28 20:10:00

标签: bash ksh

我有以下用bash编写的函数:

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

这个函数工作得很好但是问题是用bash编写的,有一些终端只允许使用ksh我想把这个函数翻译成ksh,我想感谢任何有助于克服这种情况的帮助。

为了更清楚地使用此功能,首先必须使用您的电子邮件声明以下变量:

mail_addr = YOUR_EMAIL_ADDRESS。

1 个答案:

答案 0 :(得分:1)

Doesn't crash in KSH 93u+:

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

The only oddities in your original post were spurious ;. If this fails, it's related to the commands and arguments, not the syntax.