我正在尝试使用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
为我工作。
答案 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"`
}