मेरी बैश स्क्रिप्ट में मुझे वर्तमान डीआईआर को उपयोगकर्ता की होम निर्देशिका में बदलने की जरूरत है।शेल स्क्रिप्ट में उपयोगकर्ता के होमडियर में स्क्रिप्ट निर्देशिका बदलें
अगर मैं कमांड लाइन से, उपयोगकर्ता की foo घर dir को बदलना चाहते हैं मैं कर सकते हैं:
cd ~foo
कौन सा ठीक काम करता है, लेकिन जब मैं स्क्रिप्ट से भी ऐसा ही यह मुझसे कहता है :
./bar.sh: line 4: cd: ~foo: No such file or directory
इस तरह की सीम इतनी छोटी बात होगी, लेकिन यह काम नहीं कर रही है। यहाँ क्या समस्या है? क्या मुझे "~" या शायद गायब उद्धरण या कुछ और से बचने की ज़रूरत है?
संपादित
जब मैं कहता हूँ उपयोगकर्ता मेरा मतलब नहीं है वर्तमान उपयोगकर्ता है कि स्क्रिप्ट चलाता है, लेकिन सिस्टम पर किसी भी अन्य उपयोगकर्ता सामान्य रूप में
संपादित
यहां लिपि है:
#!/bin/bash
user="foo"
cd ~$user
यदि उपयोगकर्ता नाम की तरह
cd ~foo
यह काम करता है, लेकिन अगर यह तो उपयोगकर्ता चर में है यह नहीं है hardcoded है। मुझे यहां क्या समझ नहीं आ रहा है?
क्या आप उपयोगकर्ता के लिए होम निर्देशिका चाहते हैं, या उपयोगकर्ता की होम निर्देशिका में निर्देशिका foo चाहते हैं? –
मुझे उपयोगकर्ता foo –
की होम निर्देशिका चाहिए, आपका शेबैंग कैसा दिखता है? –