लिनक्स टकसाल। लाभकारी अवधि चर सेट नहीं


0

मेरे पास मेरी कस्टम फ़ाइल में एक। स्क्रिप्ट फ़ाइल है, अतिरिक्त कोड के साथ और कुछ भी नहीं लिया गया है, हालांकि यह अभी भी एक के साथ उत्तर दे रहा है TERM ENVIRONMENT VARIABLE NOT SET त्रुटि। हालांकि, अगर मैं कमांड चलाता हूं echo $TERM बूट के बाद टर्मिनल में इसे सेट किया जाता है xterm-256color। मैं इसे सुलझाने के बजाय त्रुटि को दबाने के लिए भी खुला हूं क्योंकि यह बूट के बाद मेरे कंप्यूटर को प्रभावित नहीं करता है।

यहाँ स्क्रिप्ट .profile है:

clear
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi


# --- EVERYTHING ABOVE HERE IS DEFAULT AND NOT CHANGED ---


wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    (
     echo )
    else
    (
    echo Aquiring Internet Connection . . .
    sleep 6)
    fi
wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    (
     echo )
    else
    (
    sleep 5)
    fi

wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    echo ==========================================================================================================================================
    echo WELCOME LUKAKA                                     LOCAL WEATHER REPORT    VIA WTTR.IN                                      Running XFCE
    echo ==========================================================================================================================================
    curl wttr.in
    echo ==========================================================================================================================================
    echo
    echo -e "\033[1;32mStatus for play.wildcraftmc.com [Wildcraft Survival+ Server]   \033[0m" 
    mcstatus play.wildcraftmc.com status >wildcraft.txt
    sed -n 1p wildcraft.txt
    tail -n -1 wildcraft.txt
    echo ==========================================================================================================================================
    echo -e "\033[1;32mStatus For Mc.Starlegacy.Net [Starlegacy Space Survival]   \033[0m" 
    mcstatus mc.starlegacy.net status >Star-Legacy.txt
    sed -n 1p Star-Legacy.txt
    tail -n -1 Star-Legacy.txt
    echo ==========================================================================================================================================
    echo -e "\033[1;32mStatus For Jectile.com [Shoota COD Server]   \033[0m" 
    mcstatus Jectile.com status >Star-Legacy.txt
    sed -n 1p Star-Legacy.txt
    tail -n -1 Star-Legacy.txt
    echo ==========================================================================================================================================
    rm Star-Legacy.txt
    rm wildcraft.txt
else
    echo Connection Failed.
fi

echo -n "Would you like to start the GUI (y/n)? "
old_stty_cfg=$(stty -g)
stty raw -echo ; answer=$(head -c 1) ; stty $old_stty_cfg # Careful playing with stty
if echo "$answer" | grep -iq "^y" ;then
    sudo systemctl start lightdm
    onedrive-d start
    xinput set-prop 11 317 -1
else
    echo No
    echo -e "\033[0;33mskipping GUI. The following service(s) will not run: onedrive-d, lightdm, Minecraft-Lukaka, xinput 11.\033[0m"
    fi

यह त्रुटि संदेश है: err \

संदर्भ के लिए, मेरी स्क्रिप्ट इंटरनेट कनेक्शन के लिए क्या जांचती है, अगर यह वहां है तो यह wttr.in (मौसम) को भूल जाती है और कुछ सर्वर पर स्थिति की जांच करने के लिए एक आधिकारिक Minecraft उपकरण का उपयोग करती है।

जवाबों:


1

एक बार जब आपकी स्क्रिप्ट उस बिंदु पर पहुंच जाती है, जहां वह आपसे पूछती है कि क्या आप GUI को शुरू करना चाहते हैं, यदि आप कहते हैं कि हाँ तो यह 3 और कमांड चलाता है:

sudo systemctl start lightdm

onedrive-d start

xinput set-prop 11 317 -1

अब, यदि आप जानते हैं कि त्रुटियां हानिरहित हैं, तो आप उन्हें बिना उपयोग के अनुपयोगी बना सकते हैं 2>/dev/null कमांड के कारण त्रुटि होती है, जैसे कि

sudo systemctl start lightdm 2>/dev/null

हालाँकि, इनमें से प्रत्येक कमांड को बदले में चलाने की सलाह दी जाएगी, जो संभव हो तो उन त्रुटियों की समीक्षा करें और उन्हें ठीक करें।


अगर वह मदद करता है तो मैंने त्रुटि संदेश जोड़ दिया। टर्मिनल में इसे चलाने पर मुझे कोई त्रुटि नहीं मिलती है।
Mark Deven

वह स्क्रिप्ट भयावह रूप से हैक की गई है और सभी प्रकार की 'खराब' चीजों को कर रही है। मैं यह भी नहीं जानता कि यहाँ से कहाँ जाना है।
djsmiley2k

ऐसा कैसे? मैं इन सभी चीजों को करने का सबसे अच्छा तरीका खोजने की कोशिश कर रहा था, लेकिन मैं विशेषज्ञ बैशर नहीं हूं। मैं विंडोज बैच के लिए उपयोग किया जाता हूं।
Mark Deven

1

आपको यह जांचना चाहिए कि क्या आप संदेशों को प्रिंट करने से पहले टर्मिनल में चल रहे हैं या कमांड चलाने के लिए जिन्हें टर्मिनल की आवश्यकता है। यह, उदाहरण के लिए, उपयोग किया जा सकता है:

if [ -t 1 ] # check if stdout is a terminal
then
  # in a TTY, do stuff
fi

जीयूआई लॉगिन प्रक्रिया स्रोतों /etc/profile तथा ~/.profile ताकि किसी भी पर्यावरण चर आपको सेट करने की आवश्यकता हो। लेकिन यह सोर्सिंग एक टर्मिनल में नहीं की गई है, इसलिए TERM सेट नहीं है। जब आप एक टर्मिनल खोलते हैं, और चलाते हैं echo $TERMटर्मिनल निर्धारित किया है TERM इसके द्वारा शुरू की गई प्रक्रियाओं के लिए, इसलिए आपको एक मूल्य मिलता है।

IMO में आपको जो कुछ भी जोड़ा है, उसे आप को लपेटना चाहिए if ऊपर दिए गए चेक, चूंकि कोई भी GUI में चलने पर विशेष रूप से प्रासंगिक नहीं है।


बहुत स्मार्ट मैंने सोचा नहीं था कि धन्यवाद! क्या यह तब भी काम करेगा, जब मेरी स्क्रिप्ट के अंदर अन्य / फिर भी जाँच हो?
Mark Deven

1
@MarkDodsons आप घोंसला बना सकते हैं if दूसरे के अंदर ब्लॉक if खंड
muru
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.