รุ่น Ubuntu: Ubuntu 20.04.2.0 LTS
เปลือก: ทุบตี
ฉันมีเชลล์สคริปต์ที่จะดำเนินการโดย ราก จากงาน cron ของ root
แต่แม้ในขณะที่ฉันเรียกใช้สคริปต์ด้วยตนเอง มันก็เกิดข้อผิดพลาดขึ้นโดยระบุข้อความต่อไปนี้
# ./fix_wifi.sh
./fix_wifi.sh: บรรทัดที่ 17: : ไม่พบคำสั่ง
./fix_wifi.sh: บรรทัดที่ 18: : ไม่พบคำสั่ง
บรรทัดที่ 17 และ 18 คือบรรทัดที่มี เสียงสะท้อน
และ รีสตาร์ทตัวจัดการเครือข่ายบริการ
การระบุชื่อพาธสัมบูรณ์ (/usr/bin, /usr/sbin) สำหรับไบนารีเหล่านี้ในสคริปต์ไม่ได้ช่วยอะไร
ดังนั้นฉันต้องการให้แหล่งที่มาของไฟล์เริ่มต้นที่จุดเริ่มต้นของสคริปต์เพื่อให้สคริปต์ทราบตัวแปร PATH (และตัวแปรอื่น ๆ ที่เกี่ยวข้อง)
แต่สำหรับผู้ใช้รูทใน Ubuntu ฉันควรหาไฟล์เริ่มต้นใด ฉันสามารถเห็น .bashrc
และ .ข้อมูลส่วนตัว
ไฟล์ในโฮมไดเร็กทอรีของรูท /ราก
.
#!/bin/bash
#เขียนโดย xyz
# ต้องเรียกใช้ในฐานะรูท
ถ้า [[ $EUID -ne 0 ]]; แล้ว
  echo "สคริปต์นี้ต้องรันในฐานะรูท"
ทางออก 1
ไฟ
ConnectionStatus=$(การเชื่อมต่อเครือข่าย nmcli)
#echo "สถานะการเชื่อมต่อ $"
ถ้า [ "$ConnectionStatus" != "เต็ม" ]
แล้ว
  /usr/bin/echo "Wifi พบว่าถูกตัดการเชื่อมต่อที่ " `date` " ดังนั้นการรีสตาร์ทตัวจัดการเครือข่าย..." | /usr/bin/tee -a /home/john/scripts/wifi_diagnostics.log
  /usr/sbin/service รีสตาร์ทตัวจัดการเครือข่าย
ไฟ
บันทึก:
ฉันลืมระบุเส้นทางที่แน่นอนสำหรับ วันที่
คำสั่งในบรรทัดที่ 17 แต่ที่นี่ไม่เกี่ยวข้องมากนักเนื่องจากบรรทัดที่ 18 มี รีสตาร์ทตัวจัดการเครือข่ายบริการ
ยังคงเกิดข้อผิดพลาดแม้ว่าจะระบุเส้นทางแบบเต็ม (/ usr / sbin)