diff options
author | asynts <asynts@gmail.com> | 2020-09-28 11:02:36 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-09-28 17:39:50 +0200 |
commit | afa2523724c1b8435a0df1ef5acfe112ae5e6318 (patch) | |
tree | 5680dd9252e90afbfcb637a6488c09fa5bef8d35 | |
parent | d3d7ea7e75f016f235e0ed248afbda36003febf0 (diff) | |
download | serenity-afa2523724c1b8435a0df1ef5acfe112ae5e6318.zip |
Shell: Don't execute scripts interactively.
The following example should illustrate one issue arising from this:
$ echo 'exit 1' > example.sh
$ Shell example.sh
Good-bye!
This message is meant to be shown to an interactive user, but not in a
shell script.
-rw-r--r-- | Shell/Shell.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/Shell/Shell.cpp b/Shell/Shell.cpp index 57a99f429a..12142cef2e 100644 --- a/Shell/Shell.cpp +++ b/Shell/Shell.cpp @@ -873,6 +873,8 @@ NonnullRefPtrVector<Job> Shell::run_commands(Vector<AST::Command>& commands) bool Shell::run_file(const String& filename, bool explicitly_invoked) { TemporaryChange script_change { current_script, filename }; + TemporaryChange interactive_change { m_is_interactive, false }; + auto file_result = Core::File::open(filename, Core::File::ReadOnly); if (file_result.is_error()) { if (explicitly_invoked) |