So yesterday I was doing my usual vocabulary practice exercises when I came across this question. There were 4 options and 2 of them meant the same thing. しか and ばかり. In the search for an answer I turned to my best friend google and my grammar textbooks so here is what I found.
しか is only used with negative forms, so the ending of the verb has to be negative.
Noun/ numeral｝しか～ない only, no more than, no~ but
例：私はゆうべ３時間しかねられませんでした。I could only sleep for 3 hours last night.
Meaning that you ONLY slept 3 hours and of course you didn’t find it enough so it has a negative feeling. So by using しか, you underline the fact ” only 3 hours” as a negative fact plus it kinda gives your personal opinion.
On the contrary, ばかりcan be used with negative or not.
Vて-form/ noun｝ばかり only~, do nothing but~
例：映画館の中は、わかい人ばかりでした。 There were only young people in the cinema
If there are any mistakes or you want to add something to it, feel free to leave a comment below. Meanwhile, I will leave few links that I have found on the google.