řekněme ls
retuners file1 file2 dir1 dire2 ...
, chci vytisknout you have file1 file2 dir1 dire2 ... in currnent folder
.
Jak to mohu udělat?ls | xargs -i echo 'you have {} in current folder'
tiskne
you have file1 in current folder you have file2 in current folder you have dir1 in current folder you have dir2 in current folder you have xxx in current folder
také jsem zkusills |xargs printf 'you have %s %s %s %s in current folder'
ale nepodařilo se mi to zprovoznit. protože počet souborů je neurčitý. jaká je správná syntaxe pro printf
v tomto případě?
ls | xargs printf 'you have [email protected] in current folder'
je nejblíže, kam se mohu dostat, ale nefunguje to.
Přijatá odpověď:
Následující bude fungovat, ale pravděpodobně bude mít nějaké negativní bezpečnostní důsledky:
echo "You have" * "in current folder"
IMO lepší způsob, ale vyžadující dva řádky by bylo:
files=(*)
echo "You have ${files[@]} in curent folder"
S printf:
files=(*)
printf '%s ' "You have ${files[@]} in current folder"