Tôi có một tập lệnh launch.sh
thực thi chính nó như một người dùng khác để tạo các tệp với chủ sở hữu chính xác. Tôi muốn chuyển -x cho lời gọi này nếu nó ban đầu được chuyển đến tập lệnh
if [ `whoami` == "deployuser" ]; then
... bunch of commands that need files to be created as deployuser
else
echo "Respawning myself as the deployment user... #Inception"
echo "Called with: <$BASH_ARGV>, <$BASH_EXECUTION_STRING>, <$->"
sudo -u deployuser -H bash $0 "$@" # How to pass -x here if it was passed to the script initially?
fi
Tôi đã đọc trang gỡ lỗi bash nhưng dường như không có tùy chọn rõ ràng nào cho biết liệu tập lệnh gốc có được khởi chạy hay không -x
.
[[ $- == *x* ]]
để khớp mẫu.