2012-03-04 11 views
7
#!/bin/bash 
file=debian.deb 
test=basename $file .deb 
DP="blah/blah/$test/$test.php" 
read -p "[$DP]: " DPREPLY 
DPREPLY=${DPREPLY:-$DP} 
echo "Blah is set to $DPREPLY" 
echo $DPREPLY>>testfile 

तो मैं जो करने की कोशिश कर रहा हूं वह परिवर्तनीय फ़ाइल से परिवर्तनीय परीक्षण सेट करता है और इसे फ़ाइल testfile में उपयोग करता है।मैं बेसनेम को एक चर में कैसे डालूं?

उत्तर

21

आदेश प्रतिस्थापन $(...) तंत्र का उपयोग करें:

test=$(basename "$file" .deb) 

तुम भी backquotes उपयोग कर सकते हैं, लेकिन इन आधुनिक लिपियों में सिफारिश नहीं की जाती (मुख्य रूप से, क्योंकि वे घोंसला के साथ-साथ $(...) अंकन नहीं करते हैं)।

test=`basename "$file" .deb` 

आपको दूसरे लोगों की स्क्रिप्ट की व्याख्या करने में backquotes बारे में पता करने की जरूरत है; आपको अपने आप में उनका उपयोग नहीं करना चाहिए।

"$file" के आसपास उद्धरणों के उपयोग पर ध्यान दें; यह सुनिश्चित करता है कि फ़ाइल नामों में रिक्त स्थान सही तरीके से संभाले जाते हैं।

+0

धन्यवाद जो आपने काम किया! – Intecpsp

संबंधित मुद्दे