अरे मैं अपनी शेल स्क्रिप्ट चला रहा हूं जो फ़ोल्डर्स और फाइलों के साथ इंटरैक्ट करता है, लेकिन मेरी $ PWD कि यह / home / MyUserName डायरेक्टरी की ओर इशारा करती रहती है और यह गड़बड़ करती है कि इसे क्या करना चाहिए। मैं लिनक्स 4.4.8-300.fc23.x86_64 GNU / Linux चला रहा हूं:
#!/usr/bin/bash -x
clear
ls $PWD
#Check Root
echo checking Root user
if [ $EUID -ne 0 ]
then
sudo su
fi;
#Check internet availablity
TEST=$(ping -c 1 74.125.21.14|wc -l)
if [ $TEST -gt 5 2>&1 ]
then
sudo dnf install gcc kernel-devel binutils cpp glibc-devel glibc-headers isl kernel kernel-headers libmpc
else
echo "No Internet Connection Available! Installing RPMs manuely."
arr=(*.rpm)
for (( i=0; i<${#arr[@]}; i++ ));
do
echo " ${arr[$i]} "
dnf -y install ${arr[$i]}
done
fi;
# Get Network Ability
echo "Starting the setup of your laptop's wireless card."
if [ -d ./MyWirelessCard ]
then
FILE=./MyWirelessCard/fedora23_broadcom_wl_install.sh
uname1=" $( stat -c "%u" $FILE ) "
[ " $USERNAME1 = 1000" ] || chown 1000 $FILE
[ " -r -w -x $FILE " ] || chmod +rwx $FILE
else
mkdir ./MyWirelessCard
FILE=./MyWirelessCard/fedora23_broadcom_wl_install.sh
uname1=" $( stat -c "%u" $FILE ) "
[ " $USERNAME1 = 1000" ] || chown 1000 $FILE
[ " -r -w -x $FILE " ] || chmod +rwx $FILE
fi;
#Making wireless card installer run on boot
#echo "Making the wireless card install script run on boot"
#ln -s ./MyWirelessCard/fedora23_broadcom_wl_update.sh /etc/init.d/
#ln -s ./MyWirelessCard/fedora23_broadcom_wl_update.sh /etc/rc.d/
# Initial Update
echo "Preforming initial system update."
dnf -y update
#Exit
echo Script is finished
exit
मुझे मिला:
- ls / home / MyUserName फ़ोल्डर की सामग्री
- गूंज जाँच रूट उपयोगकर्ता जाँच रूट उपयोगकर्ता
- '[' 1000-एन 0 ']'
- sudo su [sudo] पासवर्ड के लिए MyUserName: ++ पिंग -c 1 74.125.21.14 ++ ++ -l
- टेस्ट = 6
- '[' 6 -गेट 5 ']'
- sudo dnf स्थापित gcc कर्नेल-डेवेल बिनुटिल्स cpp glibc-devel glibc-headers isl कर्नेल कर्नेल-हेडर्स libmpc [sudo] dcarr के लिए पासवर्ड:
- गूंज 'अपने लैपटॉप' s वायरलेस कार्ड की स्थापना शुरू। ' अपने लैपटॉप के वायरलेस कार्ड का सेटअप शुरू करना।
- '[' -d//yywearCard ']'
- mkdir ./MyWirelessCard
- FILE =।
- uname1 = ''
- '[' '= 1000' ']' '
- '' '' -r -w -x ./yyylessless_ard/fedora23_broadcom_wl_install.sh '' ''
- गूंज 'प्रारंभिक प्रणाली अद्यतन को सुधारना।' प्रारंभिक सिस्टम अपडेट को सुधारना।
- dnf -y update एरर: इस कमांड को रूट यूजर के तहत चलाया जाना है।
- इको स्क्रिप्ट समाप्त हो गई है स्क्रिप्ट समाप्त हो गई है
- बाहर जाएं
मैं एक नुकसान में हूँ किसी भी मदद की बहुत सराहना की जाएगी।
आपका उद्धरण कई स्थानों पर गलत है। उदाहरण के लिए
—
ग्लेन जैकमैन
[ " -r -w -x $FILE " ]
होना चाहिए [ -r "$FILE" ] && [ -w "$FILE" ] && [ -x "$FILE" ]
- आपका कोड कभी भी "गलत" नहीं होगा
यदि आपको वह निर्देशिका बनानी है, तो $ FILE निश्चित रूप से मौजूद नहीं होगी।
—
ग्लेन जैकमैन
दिलचस्प है, लेकिन सिर्फ जिज्ञासा से बाहर, क्या अंतर है? यह मेरे लिए काम है, कम से कम जहाँ तक मुझे पता है
—
Purpe_Fedora
sudo su
सामान बेकार है। यह शायद वैसे भी अच्छा अभ्यास नहीं है, यह रूट और निकास के रूप में नहीं चलने के बारे में शिकायत करने के लिए पर्याप्त है। / संपादित करें: आह, आप प्रमाणीकरण कैशिंग पर भरोसा कर रहे हैं। यह और भी बुरा है। : डी