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 22:22 | Nová verze

    Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 21:55 | Komunita

    Před sedmi lety společnost Valve představila fork projektu Wine s názvem Proton umožňující v Linuxu přímo ze Steamu hrát počítačové hry do té doby běžící pouze ve Windows. Aktuální přehled podporovaných her na stránkách ProtonDB

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

    Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.

    Ladislav Hagara | Komentářů: 5
    dnes 12:44 | Bezpečnostní upozornění

    Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 21:11 | IT novinky

    Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.

    Ladislav Hagara | Komentářů: 25
    včera 14:11 | Nová verze

    The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.

    Ladislav Hagara | Komentářů: 14
    včera 04:00 | Nová verze

    Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.

    Ladislav Hagara | Komentářů: 0
    19.8. 23:55 | Zajímavý software

    Emacs na stříhání videa? Klidně.

    Ladislav Hagara | Komentářů: 7
    19.8. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    19.8. 13:22 | Zajímavý článek

    Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (76%)
     (11%)
     (5%)
     (3%)
     (5%)
     (0%)
    Celkem 38 hlasů
     Komentářů: 6, poslední dnes 13:35
    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: 467×
    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.