⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shift.def

📁 android-w.song.android.widget
💻 DEF
字号:
This file is shift.def, from which is created shift.c.It implements the builtin "shift" in Bash.Copyright (C) 1987-2009 Free Software Foundation, Inc.This file is part of GNU Bash, the Bourne Again SHell.Bash is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.Bash is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with Bash.  If not, see <http://www.gnu.org/licenses/>.$PRODUCES shift.c#include <config.h>#if defined (HAVE_UNISTD_H)#  ifdef _MINIX#    include <sys/types.h>#  endif#  include <unistd.h>#endif#include "../bashansi.h"#include "../bashintl.h"#include "../shell.h"#include "common.h"$BUILTIN shift$FUNCTION shift_builtin$SHORT_DOC shift [n]Shift positional parameters.Rename the positional parameters $N+1,$N+2 ... to $1,$2 ...  If N isnot given, it is assumed to be 1.Exit Status:Returns success unless N is negative or greater than $#.$ENDint print_shift_error;/* Shift the arguments ``left''.  Shift DOLLAR_VARS down then take one   off of REST_OF_ARGS and place it into DOLLAR_VARS[9].  If LIST has   anything in it, it is a number which says where to start the   shifting.  Return > 0 if `times' > $#, otherwise 0. */intshift_builtin (list)     WORD_LIST *list;{  intmax_t times;  register int count;  WORD_LIST *temp;  if (get_numeric_arg (list, 0, &times) == 0)    return (EXECUTION_FAILURE);  if (times == 0)    return (EXECUTION_SUCCESS);  else if (times < 0)    {      sh_erange (list ? list->word->word : NULL, _("shift count"));      return (EXECUTION_FAILURE);    }  else if (times > number_of_args ())    {      if (print_shift_error)	sh_erange (list ? list->word->word : NULL, _("shift count"));      return (EXECUTION_FAILURE);    }  while (times-- > 0)    {      if (dollar_vars[1])	free (dollar_vars[1]);      for (count = 1; count < 9; count++)	dollar_vars[count] = dollar_vars[count + 1];      if (rest_of_args)	{	  temp = rest_of_args;	  dollar_vars[9] = savestring (temp->word->word);	  rest_of_args = rest_of_args->next;	  temp->next = (WORD_LIST *)NULL;	  dispose_words (temp);	}      else	dollar_vars[9] = (char *)NULL;    }  return (EXECUTION_SUCCESS);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -