मुझे बैश स्क्रिप्ट में किसी निश्चित कमांड के निष्पादन से बचने के लिए है।
मैंने ऐसा करने के लिए एक preexec जाल का उपयोग करने के लिए सोचा था।क्या किसी निश्चित कमांड के निष्पादन से बचना संभव है?
मान लें कि मैं केवल अक्षरों के लिए 'स्रोत' कमांड से बचना चाहता हूं। क्या मैंने किया था मूल रूप से निम्नलिखित है:
#!/bin/bash
function preexec()
{
if test $(echo "$BASH_COMMAND" | cut -d " " -f1) == "source"
then
echo ">>> do not execute this"
else
echo ">>> execute this"
fi
}
trap 'preexec' DEBUG
echo "start"
source "source.sh"
echo "go on"
exit 0
विचार ठीक काम करता है, लेकिन इस बिंदु पर मैंने कहा कि आदेश के निष्पादन से बचने के लिए कैसे पता नहीं है।
कोई विचार यह कैसे हल करें?
ध्यान रखें कि 'स्रोत' एक अन्य शेल के विपरीत, एक खोल बनाया गया है। फिर भी दिलचस्प सवाल है। –
मेरी टिप्पणी शायद बेवकूफ है, लेकिन चूंकि आप स्क्रिप्ट बदल सकते हैं, क्यों न केवल उन आदेशों को टिप्पणी करें और सहेजें? या आदेश उपयोगकर्ता इनपुट से आते हैं? आप उन्हें रेगेक्स द्वारा देख सकते हैं। या मैं आपकी आवश्यकता को समझ नहीं पाया? – Kent
@ केंट खान सिर्फ एक आसान उदाहरण है। मुझे जो कुछ भी हो सकता है, उसके तहत किसी निश्चित कमांड के निष्पादन को रोकने के लिए जो हो सकता है या नहीं। –