( Nextra | 2022. 01. 23., v – 11:21 )

Szia. Az érzékenység talán azért, mer úgy vettem észre hogy akárhogy fogalmazok, senki nem érti meg. S akkor a sommás vélemény: én vagyok a hülye mert vízöntő vagyok. S mint ilyen mindig más utakon járok más srófra jár az agyam. Kész. Ennyi.

A . "$CONFIG" dolgot ismerem, de most nem jó. Mert akkor a szkript az egész config állományt behúzza. Olyan dolgokat is amire semmi szükség. Ezért gondoltam arra hogy csak simán kiszűröm egy grep paranccsal  a config fájlból az ominózus részt. S akkor elvileg semmi ártalmas dolog nem juthat be, mert kimondottan célirányosan egy dolgot keresek. És nem a fájlra van szükségem, hanem a fájlban egy megadott változóra. Illetve erre sincs szükség de ha létezik akkor felhasználjuk. 

De legyen. Én Mageiát használok. S a Mageiában van egy /etc/profile.d könyvtár, mely tele van shell programokkal. Talán 2009-ben küldtem be egy javaslatot meg egy kis szkriptet, hogy tegyék elérhetővé a promptot színesben is. A felhasználó zöld, a root piros prompttal látszódjon. Nemsokára megjelent a colorprompt.rpm. Kicsit hozzáigazították a rendszerhez, de ott volt. Azóta is ott van. Az /etc/profile.d/92user-color.sh néven.

Úgy gondoltam hogy egy kicsit ráncfelvarrom. Teljesen újraírtam az egészet, és szubrutinokba szerveztem egyelőre 6 különböző prompt beállítást. Ok. No de hogyan lesz ebből a felhasználó számára látható dolog?
Hát úgy, gondoltam hogy megad egy változót a .bashrc fájljában. prompt="myPromptX" néven.Ahol az X egy szám egyelőre 1-9-ig. A 92user-color meg szépen beolvassa, és a megfelelő rutint megjeleníti. Ha a felhasználónak nincs a .bashrc fájljában ilyen prompt sor, akkor a 92user-color egy alapértelmezett promptot állít be.

Ha a felhasználó a. basrc fájljában # jelet rak a prompt="myPrompt2" elé, akkor azt figyelmen kívül kell hagyni. Ezt nem tudtam megoldani. S igen tisztában vagyok az ártalmas kódok bevitelével. Ezért gondoltam arra hogy nem sourcoljuk az egész .bashrc fájlt, mert az magában is lefuthat. S ha magában le is fut az így utólag beírt prompt="myPromt2" -vel ő nem tud mit kezdeni. 

Vagyis én mint nem programozó úgy gondolkodtam hogy csakis és kizárólag a prompt szót fogom keresni a .bashrc fájlban. Ezzel előzve meg a nem kívánatos injekciókat. Ráadásul tovább is szűröm a dolgot.És csak egy számmal dolgozok. Most akkor a kérdés hogy ez így biztonságos-e? Értelmes-e? Fölösleges-e?

maxnumber="6"
prompt="$(grep '^prompt=' "/$HOME/.bashrc" | awk -F'"' '{printf $2}')"
number="$(echo "${prompt}" | tail -c2)"

if (( number > maxnumber )); then
    myPrompt1
elif [ "${number}" = "" ]; then
    myPrompt1
else
    ${prompt}
fi