Portál AbcLinuxu, 7. května 2025 14:44
#!/bin/bash function Start { #nějaký příkaz který vyžaduje sudo } sudo StartProblém je ten, že to nefunguje. Neporadí někdo?
Řešení dotazu:
sudo je program, ktorého argumentom je niečo, čo sa odovzdá systémovej funkcii exec(). Tej sa dá odovzdať iný program, ale nedá sa jej odovzdať funkcia shell-u.
Keď hovorím "iný program", tak mám na mysli niečo skompilované do binárky. Nie shell-ový skript, ani python-ový skript ani nič podobné. Tie sú "interpretované" príslušným interpreterom.
Správnejšie by bolo, aby to sudo vykonal ten, kto ten tvoj skript ide spúšať. To znamená, že by napr. robil "sudo bash -c test.sh". (A tam by bolo vhodné použiť absolútne cesty.)
Ale aj tak mám pocit, že by si mal skôr povedať, čo sa snažíš urobiť a potom by sme prišli k nejakému lepšiemu riešeniu.
co jakoby todlecto hele?? :O :O
#!/usr/bin/env bash function Start { #příkaz sem strčit } sudo bash -c "$(declare -f Start); Start"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.