Meer
Hoe lees ik een bestand in een variabele in shell?
Ik wil een bestand lezen en het opslaan in een variabele, maar ik moet de variabele behouden en niet alleen het bestand afdrukken. Hoe kan ik dit doen? Ik heb dit script geschreven maar het is niet helemaal wat ik nodig had:
#!/bin/sh
while read LINE
do
echo $LINE
done <$1
echo 11111-----------
echo $LINE
In mijn script kan ik de bestandsnaam als parameter meegeven, dus als het bestand bijvoorbeeld "aaaa" bevat, dan zou het dit afdrukken:
aaaa
11111-----
Maar dit drukt alleen het bestand af op het scherm, en ik wil het opslaan in een variabele! Is er een makkelijke manier om dit te doen?
420
3
In cross-platform, kleinste gemene deler
sh
gebruik je:In
bash
ofzsh
, om een heel bestand in een variabele te lezen zondercat
aan te roepen:Als u het hele bestand in een variabele wilt lezen:
Als u het regel voor regel wilt lezen:
Twee belangrijke valkuilen
die tot nu toe in andere antwoorden zijn genegeerd:
Verwijdering van een nieuwe regel aan het einde van een opdrachtuitbreiding
Dit is een probleem voor de:
type oplossingen, maar niet voor
read
gebaseerde oplossingen.Commando uitbreiding verwijdert nieuwe regels achteraan:
Uitvoer:
Dit breekt de naïeve methode van het lezen uit bestanden: