函数内的'exit'命令导致主机屏幕窗口关闭

时间:2016-03-15 17:35:43

标签: linux bash gnu-screen

编辑:如果我可以使用return,那么使用set -e的功能呢?

我在我的Linux VM上运行屏幕,以便拥有多个终端,我可以断开连接并在需要时返回。

我遇到运行bash命令的问题,这些命令使用直接调用exit或其中包含set -e的函数 - 它们会导致屏幕终端关闭并将我踢出另一个屏幕终端。

有没有办法让屏幕停止响应exit调用,或者让它知道exit纯粹是为了使用它的函数的返回值?

违规功能:

function unpackdb() {
  cd $DB_LOCATION
  mkdir -p downloads
  cd downloads
  db_file_name=$(ls -t *.tar.gz 2> /dev/null | head -1)
  if [ -n "$db_file_name" ] ; then
    tar xf $db_file_name -C ../data
    echo "Latest file (${db_file_name}) restored in to ${pwd}/../data"
  else
    echo "Could not find a .tar.gz in ${pwd}, if you don't care use command 'startdb'"
    exit 1
  fi
}

0 个答案:

没有答案