91013
移動先のパスを書いたファイルをtempフォルダに生成して、移動先のパスをcatで取ってきてcdするみたいなプログラムを書いています。同じ関数をBashでも書いておりそちらは正常に動作しています。

試している環境は、vscodeのcodespacesでubuntu22.04です。

```

    function my_cmd(){
      temp_path="/tmp_path/to/_my_app.$$"
      my_app "${temp_path}"
      path=`cat "${temp_path}"`
      cd "${path}" || return
    }
    
```

`my_cmd`を実行すると一度目はちゃんと動くのですが、それ以降実行すると下記のようなエラーが出ます。

```

    my_cmd:3: command not found: my_app
    my_cmd:4: command not found: cat
    
```

(まれに`my_cmd:3 permission denied: my_app`となる時もあります)

`my_cmd`実行後、`cd`や`pwd`は実行できますが、パッケージマネージャや`ls`等のコマンドは`command not found`
となります。

zshを強制終了して開きなおすと、一度目だけ動いて再度`command not found`を吐くようになります。
CC BY-SA 4.0
2022-09-09T09:21:08.267
91012
2022-09-09T09:55:20.960
52746
question
shellscript zsh
Zshのshell関数の中で自作のmy_appを一度動かしたら、その後my_appやcatやls、パッケージマネージャのコマンドなどが使えなくなるのを改善したい
現状の書き方だと、既存の path の内容を上書きしてしまうので、各種コマンドが見つからない状態になってしまうのだと思います。

>
```

>     path=`cat "${temp_path}"`
>  
```

変わりに、例えば以下のような記述で既存の path に追加してみてください。

```

    path=(${path} ${temp_path})
    
```
CC BY-SA 4.0
2022-09-09T09:55:20.960
91013
2022-09-09T09:55:20.960
3060
91012
answer