Нужно изменить каталог внутри скрипта - PullRequest
1 голос
/ 08 апреля 2020

Мне нужно изменить каталог внутри shellscript.i я попробовал ниже

#!/bin/bash
sudo -u rv bash
cd /opt/test
source /opt/rv/van.env
./rv.sh |grep "STATUS" 

Когда я попробовал, он не cd по этому пути и не выполнил rv. sh. Направьте меня с некоторыми идеями.

Fyi rv. sh path / opt / test /

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Следующая строка:

sudo -u rv bash

Запустит консоль bash от имени пользователя rv, а затем весь ваш сценарий остановится до завершения программы (т.е.: bash).

Только после окончания bash программа продолжит выполнение и запустит последние две строки.

Последние две строки выполняются как часть первого скрипта, поэтому они запускаются как ваш пользователь.

0 голосов
/ 08 апреля 2020

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

Вам придется собрать отдельный скрипт и запустить его с помощью sudo. Запуск sudo внутри скриптов редко является хорошей идеей. Sa https://askubuntu.com/questions/425754/how-do-i-run-a-sudo-command-inside-a-script

...