使用命令mkdir~ / adirectory

时间:2015-07-24 18:12:10

标签: shell

我正在尝试使用shell脚本在用户的主目录中创建目录。该脚本有以下行:

mkdir -p $path # where path=~/adirectory, path is obtained from env 

但不是在用户的主目录即/home/auser/adirectory创建它,而是在当前工作目录中创建一个名为~的目录,并在其中放置adirectory

更新

Thanx到Jonathan Leffler帮忙。以下是我的代码的工作片段:

function init() {
  if [ "$PROJECT_DIR" = "" ]; then
    export PROJECT_DIR=$HOME/projects
  fi

  mkdir -p `expand $PROJECT_DIR`
}

function expand(){
  echo `sh -c "echo $1"`
}

正如Jonathan Leffler所指出的,问题出在tilde expansion上。使用sh -c $path为我工作。

1 个答案:

答案 0 :(得分:0)

问题在于波浪扩展。使用sh -c $ path为我工作。

function init() {
  if [ "$PROJECT_DIR" = "" ]; then
    export PROJECT_DIR=$HOME/projects
  fi

  mkdir -p `expand $PROJECT_DIR`
}

function expand(){
  echo `sh -c "echo $1"`
}