Powiedzmy, że mam jakieś dane konfiguracyjne w pliku config
. Dla wygody, chciałbym, aby załadować te dane do zmiennej powłoki CONFIG_DATA
.
Oczywiście mogę:
CONFIG_DATA="$(cat config)"
Ale ten rodzaj wydaje mi się bezużytecznycat
. Czy to jedyny sposób, aby to zrobić? A może jest to bardziej elegancki sposób?
Odpowiedzi powinny preferować POSIX, ale mogą używać dowolnej powłoki.
shell-script
shell
io-redirection
strugee
źródło
źródło
Odpowiedzi:
Przynajmniej w Bash i powłoce Z istnieje szybszy sposób:
Cytując ze strony podręcznika użytkownika powłoki Bourne Again:
źródło
$(<file)
jest znacznie mniej powszechny, więc może spowodować znacznie więcej WTF; a przyrost prędkości z tej operacji, jeśli taka konfiguracja ma zostać załadowana do zmiennej, jest prawdopodobnie nieistotnyfor i in $(cat file); do ...
to drugi. To, że są powszechne, nie jest powodem do używania złych narzędzi. Co nie znaczy, że to szczególne użycie kota jest złym tooi, nie jestem pewien, czy istnieje bardziej przenośny sposób. Po prostu mówienie, że pospolite i znane!