Portál AbcLinuxu, 12. května 2025 05:09
sh /root/mysh/check_date.sh v souboru /root/mysh/check_date.sh mám jen source /root/mysh/back.sh
a přitom to hlásí chybu /root/mysh/check_date.sh: 2: source: not foundco je to za blbost? Seru se s tím už 2 hodiny a výsledek nebere konce, nechápu, nerozumím. Poradí někdo?
Řešení dotazu:
sh skript.shalebo
bash skript.sh. Aj na systemoch, kde je jedno link na to druhe sa bash typicky chova inak, ak je volany cez sh a nie cez bash.
source
, bo je to je (asi) dash - to je hotovizňa (sh není nutně a nyní už i často bash)…source
je bashismus, vyměnit je za '.' a zlepší se to :)
source
je bashismus
S ohledem na to, že source
používá celá rodinka *csh, bych si dovolil považovat toto tvrzení za ne zcela přesné. ;)
source
je tzv. vestavěný příkaz BASHe (viz man bash
– SHELL BUILTIN COMMANDS), není to tedy běžná binárka někde v /bin/*
(jako třeba ls
). Takže to bez BASHe fungovat nebude (spouštíš to pomocí sh
), ale mělo by ti tam fungovat:
. /root/mysh/back.sh(tečka místo source)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.