/ / BASH funkcja printf do drukowania zmiennej zawierającej symbol gwiazdki - bash, printf

Funkcja printf BASH do drukowania zmiennej zawierającej symbol gwiazdki - bash, printf

Próbuję wydrukować funkcję printfwypisać linię zmiennych z zapisanymi wartościami, z których jedna może ewentualnie zawierać symbol gwiazdki. Rozsądek używania printf polega na tym, że mogę śledzić styl formatowania już w pliku limits.conf, mając każdą stałą zmienną w wyznaczonej ilości miejsca. Działa dobrze z wszystkim innym niż „*”.

printf "#""%-15s %-7s %-15s %-8sn" $domain $type $item $value >> ~/etc/security/limits.conf

powiedzmy na przykład: domain = * type = hard item = core wartość = 100

Robiąc to, dziwnie dostaję listę wszystkichmoje katalogi w pliku limits.conf, mimo że wartość domeny to „*”. Mam nadzieję, że ktoś może pomóc! Z góry dziękuję!

Przykład tego, jak wygląda wpis:

#<domain>      <type>  <item>         <value>
#

#*               soft    core            0

Odpowiedzi:

3 dla odpowiedzi № 1

Wypróbuj w ten sposób:

printf "#""%-15s %-7s %-15s %-8sn" "$domain" "$type" "$item" "$value" >> ~/etc/security/limits.conf

To powinno chronić * przed rozszerzeniem nazwy pliku - co właśnie widzisz. Zapobiega to również innym problemom.