Shakib will sit out two Test matches during the upcoming tour of South Africa after asking his board for a six-month break from Tests.
The 30-year-old will however be available for the three one-day internationals and two Twenty20 games during his country's first tour of South Africa since 2008.
"I get surprised when people ask me why I don't take a break from one-day or Twenty20 internationals or from the foreign T20 league," he told reporters.
"But in Test match, I have to bat and bowl and contribute in all four innings. The team also expects me to do that. It's not good if I cannot give my hundred per cent."
Shakib is a regular at franchise-based Twenty20 tournaments around the world, and earned $712,000 from four Twenty20 competitions in 2016, according to Bangladesh's Daily Star.
He has played every Test for Bangladesh since missing two games against the West Indies in 2014 because of a suspension.
Shakib said the break from Test cricket would help him "refresh" and prolong his career.
"The biggest reason is I think I have still plenty of cricket left," Shakib said.
"If I want to play that amount of cricket and play it well, I think this break is essential for me.
"I can play now if I wish. But I have to decide whether I want play five to six more years or just one to two years. I personally feel if I continue this way, I would not be able to play more than one or two years.
He thanked the Bangladesh Cricket Board profusely for granting him the break.
"If I go to South Africa after two Test matches, I will get a break of about a month. I haven't got this kind of a break in the last three or four years," he said.
Shakib starred in Bangladesh's maiden Test win over Australia last month, claiming 10 wickets in the match and scoring 84 in one innings.
Disclaimer: No Business Standard Journalist was involved in creation of this content
