správný formát BASH SKRIPT SYNOLOGY
pracuji na windows, jak vyrobím ten skript tak, abych nezměnil znaky uvnitř?
Na Windows je tohle naprosto klíčová otázka Pokud vytvoříš skript ve špatném editoru, Windows ti do něj vloží špatné znaky, špatné konce řádků nebo dokonce typografické pomlčky. A Synology ho pak odmítne spustit. Tady máš nejjistější postup, jak vytvořit skript bez změny znaků, s UNIX konci řádků, a bez neviditelných chyb.
🟩 1. Použij editor, který umí UNIX (LF) konce řádků Nejlepší volby: ✔ Visual Studio Code - zdarma - umí UTF‑8 bez BOM - umí přepnout konce řádků na LF - neprovádí automatické „opravy“ znaků
✔ Notepad++ - umí přepnout konce řádků - nezasahuje do textu - ideální pro shell skripty
❌ NEPOUŽÍVAT: - Word - WordPad - Poznámkový blok (starší Windows) - Google Docs Tyto editory mění znaky, pomlčky, uvozovky a konce řádků.
🟦 2. Nastav správné kódování a konce řádků Visual Studio Code Dole vpravo: - klikni na CRLF → změň na LF - klikni na UTF‑8 → zvol UTF‑8 (bez BOM)
Notepad++ Menu: - Kódování → UTF‑8 (bez BOM) - Úpravy → Formát konců řádků → Unix (LF)
🟧 3. Vytvoř skript s klasickými ASCII pomlčkami V shellu musí být pomlčky minus (-), ne typografické „–“. Správně: –info=progress2 –exclude='@*'
Špatně: –info=progress2 –exclude='@*'
Windows často automaticky nahrazuje – za „–“, pokud používáš Word nebo jiné „chytré“ editory.
🟨 4. Ulož jako čistý text .sh Příklad: backup_usb.sh
A pak ho nahraj na Synology (např. do /volume1/scripts/).
🟪 5. Na Synology nastav spustitelné právo Přes SSH:
chmod +x /volume1/scripts/backup_usb.sh
🟫 6. Ověř, že skript nemá Windows konce řádků Na Synology:
file /volume1/scripts/backup_usb.sh
Správně má být: ASCII text
Špatně: ASCII text, with CRLF line terminators
Pokud je špatně, opravíš to:
dos2unix /volume1/scripts/backup_usb.sh
🏁 Závěr Na Windows vytvoříš 100% správný skript takto: - použiješ VS Code nebo Notepad++ - nastavíš UTF‑8 bez BOM - nastavíš LF konce řádků - nepoužiješ Word ani WordPad - zkontroluješ pomlčky a uvozovky A Synology skript přijme bez problémů.
