abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:22 | IT novinky

    Vláda USA nařídila společnosti Anthropic pozastavit přístup k modelům Fable 5 a Mythos 5 pro všechny cizince, včetně zaměstnanců Anthropicu.

    Ladislav Hagara | Komentářů: 1
    dnes 02:22 | Nová verze

    Společnost Murena představila (YouTube) novou verzi 4.0 mobilního operačního systému /e/OS (Wikipedie) založeného na Androidu a LineageOS bez aplikací a služeb od Googlu.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Bezpečnostní upozornění

    V Arch User Repository (AUR) bylo kompromitováno přes 400 opomíjených balíčků (jejich seznam). Útočník do nich začlenil škodlivý npm balíček atomic-lockfile, který krade citlivá data uživatelů. Publikována byla předběžná analýza spouštěného malwaru deps.

    Ladislav Hagara | Komentářů: 8
    včera 11:33 | Nová verze

    Homebrew, správce balíčků nejen pro macOS, byl vydán ve verzi 6.0.0 (seznam změn). Hlavními novinkami jsou bezpečnostní mechanismus tap trust kvůli důvěryhodnosti závislostí, vylepšení sandboxingu na Linuxu, interní JSON API nebo zlepšení výkonu.

    |🇵🇸 | Komentářů: 0
    včera 03:33 | Bezpečnostní upozornění

    Byla nalezena a 9. června opravena kritická zranitelnost ve FreeBSD v Kernel TLS (KTLS). Pojmenována byla Bumsrakete (FreeBSD-SA-26:26.ktls, CVE-2026-45257). Lokální neprivilegovaný uživatel může přepisovat soubory, ke kterým má právo pouze pro čtení. Přepsáním setuid binárky a jejím spuštěním může získat roota. Na všech verzích od verze 13.0 vydané v dubnu 2021.

    Ladislav Hagara | Komentářů: 2
    11.6. 14:11 | Komunita

    Vývojáři open source operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, se na síti 𝕏 pochlubili, že ReactOS zvládne počítačovou hru Half-Life.

    Ladislav Hagara | Komentářů: 5
    11.6. 10:44 | Nová verze

    Byla vydána nová verze 4.8 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    11.6. 04:44 | Nová verze

    Apple container dospěl do verze 1.0.0. Jedná se o open source nástroj pro spouštění linuxových kontejnerů na macOS postavený nad containerization. Napsaný je v programovacím jazyce Swift a optimalizovaný pro Apple silicon.

    Ladislav Hagara | Komentářů: 5
    11.6. 03:33 | Nová verze

    Bylo vydáno Eclipse IDE 2026-06 aneb Eclipse 4.40. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    10.6. 15:44 | Zajímavý software

    Asterinas (GitHub) je v Rustu napsané jádro operačního systému poskytující s jádrem Linux kompatibilní ABI. Vydána byla verze 0.18.0. První distribucí postavenou nad jádrem Asterinas je Asterinas NixOS. Nejedná se o oficiální projekt NixOS a nemá nic společného s NixOS Foundation.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1896 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: BASH: jak na výpis příkazu, který se bude provádět

    svido avatar 5.3.2015 08:58 svido | skóre: 28
    BASH: jak na výpis příkazu, který se bude provádět
    Přečteno: 510×
    Ahoj, mám skript, který automatizovaně pracuje s MKV kontejnery a upravuje je podle mých požadavků. Rád bych při zapnutém verbose módu viděl i jednotlivé prováděné příkazy, ale nějak se mi to nedaří...
    CMD_EVAL="$APPLICATION_MKVINFO $ACTUAL_PROCESSED_DIRECTORY/$SOURCE_FILE | grep -B4 'Track type: video' | grep 'Track number' | awk '{print \$5}'"
    logCommand $CMD_EVAL
    VIDEO_TRACK_NUMBER=$(eval $CMD_EVAL)
    Do proměnné VIDEO_TRACK_NUMBER by se mělo uložit číslo ID video stopy, ale něuloží.

    Zápis pomocí evalu používám hlavně kvůli skládání příkazu - pokud má MKV např. více audio stop, generuje se příkaz dynamicky.

    Děkuji za nápady :-)

    Odpovědi

    5.3.2015 09:12 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    bash -x
    5.3.2015 09:18 NN
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    Verbosity prikazu mkvinfo? Jednotlive provadene prikazy shellu?
    svido avatar 5.3.2015 09:48 svido | skóre: 28
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    nene, verbosity myslím pro můj skript. Standardně si vypisuji jen některé informace, ale pokud pustím skript s verbosity, mám rozšířené informace a v tomto výpisu bych rád měl i příkazy které se pustí.

    Jinak samotné spuštění příkazů ve skriptu má potlařený výstup a jen kontroluji návratovou hodnotu. Nepoužívám jen mkvinfo, ale iconv, enkódování atd.
    5.3.2015 11:12 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    Vždyť ti říkám - bash -x

    Do shebangu na prvním řádku skriptu přidej k bashi parametr -x
    svido avatar 5.3.2015 22:52 svido | skóre: 28
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    nerozumíš mi, nechci tracovat bash, ale můj vlastní skript, kdy si verbose mode řídím příznakem a protože dost příkazů, které skript spuští se generují dynamicky, rád bych při zapnutém ukecaném řežimu ty příkazy viděl. O to mi jde
    5.3.2015 23:22 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    if [ "$debug" ]; then
       echo "prikaz --parameter --parameter..."
    fi
    
    prikaz --parameter --parameter...
    6.3.2015 07:14 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    Asi opravdu nerozumím. V tom skriptu tím parametrem řekneš bashi, aby ti vypisoval, co dělá, tedy i co konkrétně spouští. Přesně právě v situacích, kdy chceš vidět, co se opravdu spouští. Vyzkoušel sis to?
    svido avatar 6.3.2015 13:17 svido | skóre: 28
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    ano, znám to. Když dám #!/bin/bash -x, dostanu sice verbose mode, ale pro bash, který mne moc nezajímá. Vidím toto:
    hurvajs@htpc ~ $ ~/bin/mkvmerger.sh --verbose                                                                                              
    + VERSION=0.1-alpha1                                                                                                                      
    ++ basename /home/hurvajs/bin/mkvmerger.sh                                                                                                
    + SCRIPT_NAME=mkvmerger.sh                                                                                                                
    + PREFIX_VERBOSE_MESSAGE='---> '                                                                                                          
    + PREFIX_MESSAGE='  '                                                                                                                     
    + PREFIX_COMMAND_VERBOSE_MESSAGE='---> CMD - '                                                                                            
    + LOCK_FILE=mkvmerger.sh.lock                                                                                                             
    + SCRIPT_CONFIGURATION_FILE=mkvmerger.conf                                                                                                
    + DATE_FORMAT='%Y/%m/%d %H:%M:%S'                                                                                                         
    + SEPARATOR_PROCESSED_FOLDER='\n----------------------------------------------------------------------------------'                        
    ++ which mkvinfo                                                                                                                           
    + APPLICATION_MKVINFO=/usr/bin/mkvinfo                                                                                                      
    ++ which mkvextract                                                                                                                         
    + APPLICATION_MKVEXTRACT=/usr/bin/mkvextract                                                                                                
    ++ which mkvmerge                                                                                                                           
    + APPLICATION_MKVMERGE=/usr/bin/mkvmerge                                                                                                      
    ++ which iconv                                                                                                                                
    + APPLICATION_ICONV=/usr/bin/iconv                                                                                                                
    ++ which enca                                                                                                                                     
    + APPLICATION_ENCA=/usr/bin/enca                                                                                                                  
    + AUDIO_POSSIBLE_LANGUAGE=('eng' 'cze')                                                                                                           
    + AUDIO_PREFERRED=eng                                                                                                                               
    + SUBTITLE_POSSIBLE_LANGUAGE=('cze' 'eng')                                                                                                            
    + SUBTITLE_PREFERRED=cze                                                                                                                              
    + SUBTITLE_ENCODING=utf-8                                                                                                                                                              
    + FLAG_VERBOSE_MODE=0                                                                                                                                                                  
    + FLAG_NO_NEW_LINE=0                                                                                                                                                                   
    + DEBUG_MESSAGE_VIDEO=                                                                                                                                                                
    + DEBUG_MESSAGE_AUDIO=                                                                                                                                                                
    + DEBUG_MESSAGE_SUBTITLE=                                                                                                                                                                 
    + DIRECTORY_INPUT=/home/hurvajs/Source/new_processed_movies/uncorrected                                                                                                                        
    + DIRECTORY_OUTPUT=/home/hurvajs/Source/new_processed_movies/corrected
    + TRACKS_TO_EXTRACT_LIST=
    + TRACKS_TO_EXTRACT_COUNT=0
    + IFS='
    '
    + COLOR_ESCAPE_SEQUENCE='\033['
    + COLOR_OFF='\033[0m'
    + COLOR_MOVIE_TITLE='\033[4;1;34m'
    + COLOR_COMMAND='\033[44m'
    + COLOR_ERROR='\033[1;31m'
    + COLOR_WARNING='\033[1;33m'
    + COLOR_SUCCESS='\033[1;32m'
    ++ date '+%Y/%m/%d %H:%M:%S'
    + EVENT_DATE='2015/03/06 13:01:36'
    + trap '{ rm -rf /home/hurvajs/Source/new_processed_movies/uncorrected/mkvmerger.sh.lock; exit 255; }' EXIT
    + ARGUMENTS_SHORT=vhcdV
    + ARGUMENTS_LONG=version,help,help-configuration,debug,verbose
    ++ getopt -o vhcdV:: --long version,help,help-configuration,debug,verbose:: -n mkvmerger.sh -- --verbose
    ...
    ...
    
    což je brutálně ukecaný a zbytečný...

    Zkusím to popsat, když pustím můj skript s --verbose zapne se ukecaný režim, kde bych rád vypisoval i příkazy, které pouštím ve skriptu, tj. mkvinfo, enca, iconv atd. které mi vytáhnou informace ze zpracovávaného MKV kontejneru, tak abych mohl kontejner extrahovat a pak složit dle svých požadavků (ENG audio, ENG + CZE titulky, pojmenování kontejneru atd).

    Aktuálně mi dělá problém toto (a na to jsem se i ptal):
    # internal video tracks
    CMD_EVAL="$APPLICATION_MKVINFO $ACTUAL_PROCESSED_DIRECTORY/$SOURCE_FILE | grep -B4 'Track type: video' | grep 'Track number' | awk '{print $5}'"
    
    # tady se zobrazí příkaz
    logCommand $CMD_EVAL
    
    # tady by se měl pustit a do proměnné VIDEO_TRACK_NUMBER naplnit ID audio stopy
    VIDEO_TRACK_NUMBER=$(eval "$CMD_EVAL")
    
    Problém je u toho awk. Abych docílil toho, že se mi zobrazí správně, musím escapovat $5, tj. \$5. Což je pak zase špatně pro vlastní eval.

    6.3.2015 14:41 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    Nemusíte to mít zapnuté pro celý skript, lze to podle potřeby zapínat ("set -x") a vypínat ("set +x").
    6.3.2015 14:43 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    To jsem ani nevěděl. Super, díky za tip :-)
    svido avatar 6.3.2015 17:28 svido | skóre: 28
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    tak to jsem také nevěděl... Hned zkusím. Díky
    7.3.2015 22:04 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    Ten skript selže když bude nastavenej jinej jazyk prostředí (já mám jména položek česky). Jinak ten $5 musí přežít až do awku ne? Takže musí být escapován proti přiřazení do stringu a pak evalem. Jinak poslední grep a awk by šel nahradit sedem (i když lomítka sedu v evalu jsou na tom podobně jako $5 v awku :-D).
    5.3.2015 10:59 chrono
    Rozbalit Rozbalit vše Re: BASH: jak na výpis příkazu, který se bude provádět
    Mimochodom pomocou programu mediainfo sa dá získať číslo stopy o niečo jednoduchšie:
    mediainfo --Output='Video;%ID%' file.mkv
    (ak súbor obsahuje viac video stôp, bude potrebné upraviť tú šablónu pre parameter Output)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.