你很棒,意识到了第一个句子中should是shall的过去式用法,不过,should在这里并不是情态动词,而是构成时态的助动词。当should用于情态动词的时候,他是没有时态变化的,只有他当助动词的时候,才是shall的过去式。
另外我们来讲讲第一个句子should用于过去时的时候,一般是用于表示“过去本应该做什么但实际上没做”这种虚拟语气的场合,正确的语法结构应该是“主语 should have 动词过去分词”,就比如你给的句子,应该是 You should have +做了什么。另外,do a shopping这种表达方式并不正确,因为shopping是不可数名词,所以一般会用 do a lot of shopping,当然直接用go shopping更直接,所以第一个句子正确表达应该是:You should have gone shopping last weekend.(上周末你应该去购物的。)
第二个句子理解是正确的,should是一个情态动词,表示的是“现在或者未来应该”。
第一句话 last weekend, 你应该用过去式。should have done some shopping.
should 不能用在过去。除非你在转述。不能看作 shall 的过去式。就像在现代英语里,你永远不能用 might 当做 may 的过去式用来描述过去的情况,除非转述。