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 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 10
    dnes 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 9
    včera 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 11
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    10.7. 12:55 | Bezpečnostní upozornění

    Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].

    Ladislav Hagara | Komentářů: 16
    10.7. 11:55 | Humor

    Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂

    Ladislav Hagara | Komentářů: 16
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 391 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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: 465×
    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: 72 | 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.