News for hackers. Stuff that matters.
Re:"Rules" that terminal programs follow by machinestops on Thursday December 12, 2024 @05:29PM (#42404091)
Note: Child processes can't change the working directory of the parent. An external command (that is, not a shell builtin, shell function, or externally loaded module) cannot change the working directory, because they're launched as child processes.
Re:"Rules" that terminal programs follow by saghm on Thursday December 12, 2024 @08:29PM (#42405186)
Good point. I'm not sure why I was thinking that it was possible to do via some other command invoking `cd` or something, but you're right that the only examples I can think of are all using other builtins (e.g. invoking `source` to have a script change the current state).
Re:"Rules" that terminal programs follow by d3VwsX on Friday December 13, 2024 @09:25AM (#42408662)
There is a workaround I saw used by wcd, a tool for changing directories. To install it you have to add a wrapper function in your shell that executes the actual wcd binary, and after possibly interacting with the user to figure out what directory to change to the executable will print out the destination, and then the wrapper function will make the call to cd, affecting the shell it runs in.

https://wcd.sourceforge.io/