这是问题所在。我有一个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
答案 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)