This is an interesting question. My research on the subject led to using the OGR_STYLE keyword combined with SQL but something must be wrong it doesn't work.
The trick is to try and get the XML style info and put it into a new field in the SHP file you're writing.
ogr2ogr -f "ESRI Shapefile" -SQL "select *, CAST (OGR_STYLE AS Character (255)) AS style from sierraLeone.kml" "sierraLeone.shp" "sierraLeone.kml"
This answer is not complete but I haven't found anything further for the moment and my attempts are not successful. Some people seem to achieve the same type of manipulation with Mapinfo, see an example below (source):
"2.9 Using OGR SQL to transfer the style between the data sources
We can use the OGR_STYLE special field to extract the feature level
style, and ogr2ogr can be used to transfer the style string between
the data sources according to the following example:
ogr2ogr -f "ESRI Shapefile" -sql "select *, OGR_STYLE from rivers"
Without specifying the length of the style field
the output driver may truncate the length to a default value.
Therefore it may be necessary to specify the target length manually,
ogr2ogr -f "ESRI Shapefile" -sql "select *, CAST(OGR_STYLE AS
character(255)) from rivers" rivers.shp rivers.tab
OGR is aware of
using the OGR_STYLE field if exists and OGRFeature::GetStyleString
will return the value of this field if no style string have been
See also a similar question to yours discussed here :