The 29-year-old, an explosive batsman and a seam bowler, will become Sri Lanka's sixth captain in less than four years if he gets the job.
Shanaka had led the national team when it clean-sweeped Pakistan in a three-match T20I series in 2019.
According to a report in ESPNcricinfo, "the captaincy switch is only partly a consequence of on-field performance."
"Although Sri Lanka have comfortably lost all three series that they played under Perera, the board and selectors have replaced him after he was deemed to have played a central role in the contracts standoff between the players and board, over the past few months," the report said.
The Sri Lankan players were locked in a longstanding row with the country's cricket board (SLC) over national contracts which ended on Wednesday after 29 out of the 30 players signed up for the India series.
It is believed that Perera was the one who had "encouraged the group to continue holding out", while "Shanaka it seems had been among the first to agree to sign Sri Lanka Cricket's tour contracts".
"According to some players, the group had decided early on Tuesday to continue defying the board. However, some players - Shanaka included - had signed the contracts soon after," the report said.
Under the SLC's performance based pay plan, 24 of the leading players had been offered contracts under four categories. Only six players were in the category A and their annual pay ranged between USD 70,000 to 100,000.
Players felt the plan lacked transparency and the proposed pay would be much lower than the approved pay scales of the Federation of International Cricket Association (FICA).
Angelo Mathews, the seniormost among the current crop of players, and Test captain Dimuth Karunaratne found themselves excluded from the contracts that were offered on Wednesday morning. Soon after, Mathews pulled out of the India series citing personal reasons and also hinted at retirement.
India will play three ODIs on July 13, 16 and 18 respectively, followed by as many T20Is on July 21, 23 and 25. All the matches will be played at the R Premadasa Stadium here.