| 123456789101112131415161718192021222324252627282930 |
- package main
- import (
- "os"
- )
- // 修改工作目录
- func cmd_cd(fields []string, stdin *os.File, stdout *os.File, stderr *os.File) {
- if len(fields) > 2 { // 最多1个参数
- panic("cd: too many arguments")
- }
- if len(fields) == 1 { // 如果没有指定目录,则切换到home
- fields = append(fields, os.Getenv("HOME"))
- }
- if fields[1] == "~" { // 如果指定目录为~,则切换到home
- fields[1] = os.Getenv("HOME")
- }
- err := os.Chdir(fields[1]) // 切换目录
- if err != nil {
- panic(err)
- }
- dir, err := os.Getwd() // 获取工作目录
- if err != nil {
- panic(err)
- }
- os.Setenv("PWD", dir) // 更新pwd环境变量
- }
|