Thanks for the reply!
After looking at the code a bit more, I think it’s the opposite: Julia is escaping special characters before passing a command to my shell. I think the escaping is done by Base.shell_parse julia/base/shell.jl at master · JuliaLang/julia · GitHub before being passed to my shell through Base.repl_cmd julia/base/client.jl at master · JuliaLang/julia · GitHub. I think that happens for the ; shell mode in REPL.jl: julia/stdlib/REPL/src/REPL.jl at master · JuliaLang/julia · GitHub.
So I guess the next question is: why does Julia need to escape special characters like * before passing them to the shell?
Thanks!
Daniel