如何为鱼中的某些脚本设置临时值?

Fre*_*ind 2 fish

我有一个包含多个项目的目录,我想对每个项目运行一些命令.

现在我正在做的是:

cd /my/project/root
set root (pwd)
for p in *
  cd $p
  git reset --hard HEAD
  git clean -dfx
  cd $root
end
Run Code Online (Sandbox Code Playgroud)

它有效但不太优雅.有没有更好的方法让这个部分:

 git reset --hard HEAD
 git clean -dfx
Run Code Online (Sandbox Code Playgroud)

在一个临时工作目录运行,所以我不需要记录root,并cd $root在每个循环的结束?

Kur*_*der 6

Fish已经保留了最近访问过的目录的历史记录,因此仅针对您的简单案例

for p in *
    cd $p
    do something
    cd -
end
Run Code Online (Sandbox Code Playgroud)

还有用于更复杂用例的pushd和popd命令.