запуск сценария оболочки запускает новую оболочку вместо запуска сценария оболочки

Я не знаю, как это назвать. Предложения по названию приветствуются.

Я использую zsh в качестве оболочки по умолчанию для пользователя, которого использую. Всякий раз, когда я пытаюсь запустить скрипт, использующий bash, он запускает новую оболочку входа в систему zsh, а не запускает скрипт. Если я изменю строку #!/bin/bash на #!/usr/bin/zsh, она просто сработает. Вот кикер. После запуска этой новой оболочки скрипт начинает работать нормально с этого момента.

Я использую mate-terminal с vcxsrv в качестве X-сервера. Сначала я запускаю простой терминал Ubuntu bash, который затем использую для запуска mate-terminal, так как мне нужна настройка DISPLAY var, а что нет, перед запуском mate-terminal. Во всяком случае, вот сценарий, который я пытаюсь запустить.

Также важно отметить, что если я реверсирую оболочки, установив bash по умолчанию и используя zsh внутри скрипта, то же самое не произойдет.

Как мне заставить это просто запустить скрипт?

$ cat tmp.sh 
#!/bin/bash -x

echo hello

$ ./tmp.sh  
+ source /usr/sbin/start-systemd-namespace
++ SYSTEMD_EXE='/lib/systemd/systemd --system-unit=basic.target'
+++ ps -eo pid=,args=
+++ awk '$2" "$3=="/lib/systemd/systemd --system-unit=basic.target" {print $1}'
++ SYSTEMD_PID=562
++ '[' myuser '!=' root ']'
++ '[' -z 562 ']'
++ '[' 562 '!=' 1 ']'
++ export
++ sed -e 's/^declare -x //;/^IFS=".*[^"]$/{N;s/\n//}'
++ grep -E -v '^(BASH|BASH_ENV|DIRSTACK|EUID|GROUPS|HOME|HOSTNAME|IFS|LANG|LOGNAME|MACHTYPE|MAIL|NAME|OLDPWD|OPTERR|OSTYPE|PATH|PIPESTATUS|POSIXLY_CORRECT|PPID|PS1|PS4|SHELL|SHELLOPTS|SHLVL|SYSTEMD_PID|UID|USER|_)(=|$)'
++ export 'PRE_NAMESPACE_PATH=/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/home/myuser/bin:/home/myuser/.rbenv/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/home/myuser/bin:/home/myuser/.nvm/versions/node/v14.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.812.0_x64__79rhkp1fndgsc:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Android:/mnt/c/Windows/System32:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/c/Users/trent/AppData/Local/Microsoft/WindowsApps:/home/myuser/go/bin:/home/myuser/.local/bin:/home/myuser/go/bin:/home/myuser/.local/bin'
++ PRE_NAMESPACE_PATH='/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/home/myuser/bin:/home/myuser/.rbenv/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/home/myuser/bin:/home/myuser/.nvm/versions/node/v14.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.812.0_x64__79rhkp1fndgsc:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Android:/mnt/c/Windows/System32:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/c/Users/trent/AppData/Local/Microsoft/WindowsApps:/home/myuser/go/bin:/home/myuser/.local/bin:/home/myuser/go/bin:/home/myuser/.local/bin'
+++ pwd
++ export PRE_NAMESPACE_PWD=/home/myuser
++ PRE_NAMESPACE_PWD=/home/myuser
++ exec sudo /usr/sbin/enter-systemd-namespace ''
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 4.19.128-microsoft-standard x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Mon Oct 12 21:48:02 MDT 2020

  System load:  0.0                Processes:             66
  Usage of /:   7.2% of 250.98GB   Users logged in:       0
  Memory usage: 7%                 IPv4 address for eth0: 172.26.153.138
  Swap usage:   0%

 * Kubernetes 1.19 is out! Get it in one command with:

     sudo snap install microk8s --channel=1.19 --classic

   https://microk8s.io/ has docs and details.

21 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable


Last login: Mon Oct 12 21:42:37 MDT 2020 on pts/3

 * keychain 2.8.5 ~ http://www.funtoo.org
 * Found existing ssh-agent: 108201
 * Known ssh key: /home/myuser/.ssh/id_rsa


person Trenton D. Adams    schedule 13.10.2020    source источник


Ответы (1)


Ключом была эта строка в /etc/bash.bashrc

source /usr/sbin/start-systemd-namespace

Некоторое время назад я заставил systemd работать по некоторым инструкциям в сети. Он должен был добавить эту строку. Это приводит к запуску совершенно новой оболочки, когда вы используете другую оболочку, например zsh. После комментирования, вуаля, больше никаких проблем.

person Trenton D. Adams    schedule 13.10.2020