从字符串更改目录

时间:2014-08-10 09:52:42

标签: bash path cygwin cd

这是问题所在。我有一个bash脚本从php脚本获取路径。但它无法将目录更改为返回路径;

function go_to_path
{
  path=$(php myscript)
  echo $path; # is totally okay, printing expected value 
  cd $path; # err -> no such file or directory. Directory is obviously exists
}

那些东西也不起作用

eval cd $path
echo $(cd $path)
cd "$path"

我在windows上通过cygwin运行bash

2 个答案:

答案 0 :(得分:3)

这对我来说很好:

function go_to_path
{
    path="/home/arnon/scripts"
    echo $path
    cd $path
}
ls
go_to_path
ls

如果'路径'它不会起作用。包含'〜' (例如在这个例子中:path="~/scripts")导致它是一个shell解释字符,而不是目录名称的一部分。

如果'路径'它也不会起作用。是一个目录,而不是您正在运行此脚本的目录。 (换句话说,如果&#php; php myscript'正在返回相对路径,请确保相对性适用于运行bash脚本的位置。)

答案 1 :(得分:2)

哦,我的。所以我想我无法正确撰写我的问题。路径值取自动态算法。这只是回声值。解决方案很简单,而不是回应价值我应该退出它。我的意思是使用路径值退出脚本。