问题陈述:创建别名cdff,它将查找目录的首次出现(作为参数给出)并将其分配给变量FILEPATH。
别名cdf ='cd $ FILEPATH'应该更改为该目录。
例如,命令“ cdff TestDir”应设置FILEPATH = Dir1 / Dir2 / TestDir
因此,如果我要转到TestDir,则只需运行“ cdff TestDir”,然后运行“ cdf”,并由于将导出变量FILEPATH而期望将目录更改为Dir1 / Dir2 / TestDir
在.bashrc中,我正在创建此别名,
别名cdff ='。/ cdfindfirstoccurance.sh'
别名cdf ='cd $ FILEPATH'
cdfindfirstoccurance.sh
export FILEPATH =`find。 -name“ $ 1 ” -print -quit`#设置变量FILEPATH供别名cdf以后使用
回显“ FILEPATH:$ {FILEPATH}”
#cd $ {FILEPATH}#我理解为什么这行不通。
由于我在执行cdff时导出变量FILEPATH,因此我期望别名cdf可以正常工作。 当我执行cdff时,当我打印“ echo $ FILEPATH”时,它只是空的。
编辑: 一种更好的解决方法受到欢迎。 现在唯一的方法是使用find命令,然后用鼠标复制输出并将其提供给cd。 我试图避免使用鼠标,也不想键入整个路径。
EDIT2: 如评论中所述,将别名从更改为
别名cdff ='。/ cdfindfirstoccurance.sh'
到
alias cdff ='源cdfindfirstoccurance.sh'
工作正常。