ฉันมีเซิร์ฟเวอร์ Linux คู่ที่ควรกำหนดค่าเหมือนกันอย่างไรก็ตามคำสั่ง ssh สำหรับหนึ่งในนั้นกำลังล้มเหลวสำหรับคำสั่งที่ต้องใช้พา ธ ที่ระบุไว้ใน ~ / .bashrc ตัวอย่างเช่นฉันสามารถใช้คำสั่งเช่นpwd
ทั้งแบบโต้ตอบและผ่าน ssh แต่ถ้าฉันลองเรียกใช้โปรแกรมที่อยู่ในโฟลเดอร์ bin ของแอปพลิเคชันมันจะทำงานในเชลล์แบบโต้ตอบสำหรับเซิร์ฟเวอร์ตัวใดตัวหนึ่งเท่านั้น
ไฟล์ / etc / profile และ / etc / environment บนเซิร์ฟเวอร์ทั้งสองเหมือนกันอย่างไรก็ตาม $ BASH_ENV ถูกตั้งค่าเป็น ~ / .bashrc บนเซิร์ฟเวอร์ที่ทำงานอย่างถูกต้อง ฉันต้องการตั้งค่า $ BASH_ENV บนเซิร์ฟเวอร์ที่ไม่ทำงาน แต่ฉันต้องการตั้งไว้ในตำแหน่งเดียวกับที่ตั้งไว้ในเซิร์ฟเวอร์ที่ใช้งานได้ มีสถานที่ใดบ้างที่ Linux จะทำงานในเวลาที่ล็อกอินไม่โต้ตอบเช่นคำสั่ง ssh จากคอมพิวเตอร์เครื่องอื่น?
แก้ไข: บรรทัดใน / etc / passwd สำหรับผู้ใช้ระบุ / bin / bash บนเซิร์ฟเวอร์ทั้งสอง นะ ~ / .bash_profile if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
ไฟล์เซิร์ฟเวอร์ทั้งสองเหมือนกันและมี ข้อแตกต่างระหว่างระบบคือ $ BASH_ENV เป็นสตริงว่างบนเซิร์ฟเวอร์ที่ไม่ทำงานและฉันไม่สามารถหาตำแหน่งที่ตั้งไว้ในเซิร์ฟเวอร์ที่ใช้งานได้
แก้ไข 2: ไฟล์ ~ / .ssh / environment บนเซิร์ฟเวอร์ทั้งสองมี BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi