示例#1
0
文件: change_dir.c 项目: loopfz/SHaft
int		do_chdir(char *path) {
  char		*pwd;

  if (chdir(path) != 0) {
    shell_warn("cd: chdir() failed.\n");
    return -1;
  }
  if ((pwd = sh_getenv("PWD")) != NULL) {
    sh_setenv("OLDPWD", pwd);
  }
  else
    sh_unsetenv("OLDPWD");
  set_pwd();
  return 0;
}
示例#2
0
文件: builtin.c 项目: mgrimald/ft_sh1
int			built_in(char **argv, char **env)
{
	int		i;

	i = 0;
	if (ft_strcmp(argv[0], "exit") == 0 && (i = 1))
		sh_exit(argv, 42);
	else if (ft_strcmp(argv[0], "cd") == 0 && (i = 1))
		sh_cd(argv);
	else if (ft_strcmp(argv[0], "env") == 0 && (i = 1))
		sh_env(argv, env);
	else if (ft_strcmp(argv[0], "setenv") == 0 && (i = 1))
		sh_setenv(argv);
	else if (ft_strcmp(argv[0], "unsetenv") == 0 && (i = 1))
		sh_unsetenv(argv);
	else if (ft_strcmp(argv[0], "help") == 0 && (i = 1))
		sh_help();
	return (i);
}
示例#3
0
文件: sh_init.c 项目: loopfz/SHaft
void		init_pwd() {
  sh_unsetenv("OLDPWD");
  set_pwd();
}