1
Software / Re:Dotazy na zvláštnost xargs (ntice argumentů v 1 příkazu)
« kdy: 17. 09. 2024, 12:41:39 »
Tyhle věci jsou někdy záludné, ale pomůže si to rozebrat na jednotlivé části, které se dají zkoumat a pochopit jednotlivě.
1) Doporučuji si napsat program/skript, který vypisuje svoje argumenty - stačí to v Bashi:
tenhle skript pak pouštíme na místo jiného programu tam, kde si nejsme jistí, co se děje a jaké argumenty se kam předávají. Pomáhá to vysvětlit případy, kdy nevíme, jestli se nějaký příkaz spustil víckrát s menším počtem argumentů nebo jednou se všemi dohromady, nebo když nevíme, zda a jak se pracuje s hodnotami v uvozovkách a apostrofech.
2) Příkaz printf podporuje více argumentů, než kolik jich bylo zadáno ve formátovacím řetězci - prostě to celé opakuje pořád dokola (těch argumentů by měl být ideálně násobek, ale pokud nějaký chybí, tak je hodnota jen prázdná a taky to projde).
1) Doporučuji si napsat program/skript, který vypisuje svoje argumenty - stačí to v Bashi:
Kód: [Vybrat]
#!/bin/bash
echo "CLI argumenty:"
for ((i=0;i<=$#;i++)); do
echo " argv[$i] = ${!i}"
done;
tenhle skript pak pouštíme na místo jiného programu tam, kde si nejsme jistí, co se děje a jaké argumenty se kam předávají. Pomáhá to vysvětlit případy, kdy nevíme, jestli se nějaký příkaz spustil víckrát s menším počtem argumentů nebo jednou se všemi dohromady, nebo když nevíme, zda a jak se pracuje s hodnotami v uvozovkách a apostrofech.
2) Příkaz printf podporuje více argumentů, než kolik jich bylo zadáno ve formátovacím řetězci - prostě to celé opakuje pořád dokola (těch argumentů by měl být ideálně násobek, ale pokud nějaký chybí, tak je hodnota jen prázdná a taky to projde).
Kód: [Vybrat]
$ printf '%s=%s\n' a b c d
a=b
c=d
$ printf '%s=%s\n' a b c
a=b
c=