簡體   English   中英

在 bash 中 exec 后繼續執行腳本

[英]Continue script execution after exec in bash

我有這樣的代碼:

echo 'test'
usr=$USER
sudo sh -c "exec su $usr"
echo 'test1'

例如echo 'test'是我配置一些需要我在新 shell 中重新登錄的代碼。 但是代碼是echo 'test1'我需要繼續使用重新加載的新 shell 進行配置。

有沒有辦法自動做到這一點? 像並行啟動新外殼或類似的東西?

Ubuntu 14.04,bash。

更新:

例如,我需要安裝 virsh 但安裝后它需要 sudo 才能運行。 我的腳本配置組將 $USER 添加到 libvirtd 組。 然后我需要重新登錄。 我可以用sudo sh -c "exec su $usr"做到這一點。 之后我需要腳本繼續執行。 有沒有辦法做到這一點?

使用visudo更改您的 sudoers 配置,以便不再要求您輸入密碼。 請參閱man visudoman sudoers

我建議使用heredoc

echo 'test'
usr="$USER"
sudo su - "$USER" << EOF
echo 'test1'
EOF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM