所谓语气(moods),基本上是一种「真、假」的表达,靠动词的变化来表示。语气基本上可分成四种。除了上一章提过的直说语气和条件语气之外,还有假设语气和命令语气,分别介绍如下。
这是一种「叙述事实」的语气,用来表示「说的这件事是真的」。一般情况下,动词按照正常的时态变化、并且不加语气助动词(也不使用未来式的 will),所表达出来的语气都属于直说语气。例如:
Many years ago Bill Gates quit college to start his own company. (多年前比尔盖兹从大学辍学以便开办自己的公司。)
By now he has built that company into the largest of its kind. (到现在他已经打造那家公司成为同类中最大的一家。)
In the future he is going to devote most of his time to charity. (未来他将投入大部分时间于慈善事业。)
第 1 句的时间副词 many years ago 是个过去时间的括弧,动词 quit 采用过去简单式。第 2 句的时间副词 by now 是个「到现在为止」的截止箭头形状,动词 has built 采用现在完成式。这两个句子的动词遵照一般的时态变化,都属于直说法「叙述事实」的语气。 「过去」的事情和「现在」的事情都很容易判断真伪,可以采用直说法语气来叙述。但是「未来」的事情尚未发生,真伪尚无法分辨,所以并不适合采用直说语气来叙述,而需要借助于语气助动词如 will 之类来表达尚未实现的「计画」或「可能性」。而一旦动用到语气助动词(包括 will),句子的语气就从直说语气转变为带有不确定意味的「条件语气」。为了避免这种不确定语气,未来的事情可以选择如上列第 3 句的情况、以 be going to 的方式来叙述。
例如,像I will go to the U.S. next year这样的句子,谈的是未来的事、用到助动词 will,这都表示「尚不确定」。这种情况和直说语气的 He went to the U.S. last year. 不同;过去的事情已经发生,可以确定,所以能够采用叙述事实的直说语气。如果要采用比较确定的语气来表达未来的事情,就应该避免使用语气助动词、改成下面这几种讲法:
I am going to go to the U.S. next year. I am to go to the U.S. next year. I am going to the U.S. next year. I go to the U.S. next year.
这几种讲法都避免用到助动词、维持了叙述事实的直说语气。以这些讲法来叙述未来的事情,语气相对会比较确定。其中又以最后一种 I go to the U.S. next year,完全采用叙述事实的现在简单式,表达「事实」的语气最为明确。 本书在第九章「动词时态」中曾提到传统文法的一条规则:「表示时间与表示条件的副词子句,要用现在式代替未来式」,究其原因其实不是时态的问题,而是语气的问题。直说语气,除了用来叙述事实,还可以用来表示「虽无法确定、但是当作是事实」的情况。例如:
His story may be true. (他说的事有可能是真的。)
动词片语 may be 因为有语气助动词 may 在内,表达的是不确定的「条件语气」。
I guess his story is true. (我猜他说的事是真的。)
从上文「我猜」判断,「他说的事」其实并无法确定是不是真的。但是,即使是无法确定的事实,如果「当作是」真的,也可以采用直说语气来表达,所以 his story is true 这个名词子句中的动词才会采用直说语气叙述事实的is来表示。
If his story is true, I’m going to help him. (如果他说的事是真的,那么我打算帮他一把。)
同样的,在解释为「如果」的 if 引导的副词子句中,本来无法确定是不是事实。但是,if his story is true 这种说法就是把这件事「当作是」真的,所以动词采用的是「直说语气」叙述事实的is。传统文法那条规则「表示条件的副词子句用现在式代替未来式」,其实就是「未来尚无法确定的事情先当作是真的,应采直说语气表示」。直说语气当中不能使用带有不确定意味的语气助动词(包括 will),所以包括未来时间都不能用 will,而必须用现在式来表示。再看一个例子:
He says he will come to pick you up tonight. (他说他今晚要来接你。)
时间副词 tonight 表示「来接你」这个动作的时间在未来、尚未发生。这种情况应该加上助动词 will,成为 will come 这个动词片语(表示「将会来」)。未来的事情都还没有发生,所以实际上都尚未确定,因此需要加上表示不确定语气的助动词,典型的是加上 will。
When he comes, you’d better be ready. (当他来的时候,你最好已经准备好了。)
时间副词子句 when he comes 意思是「当他来的时候」,也就是「当作『他来的时候』已经到了」,所以「他来」这件事情虽然事实上尚未发生,但是应该采用叙述事实的「直说语气」来表达,也就是不再使用表示「未来时间、不确定语气」的will,而是直接用 he comes 来表示。传统文法那条规则说「表示时间的副词子句用现在式代替未来式」,其实就是「把未来时间当作已经到了」,所以要采用直说语气来表示、不能用 will。
条件语气表达的是「真假并不确定」的语气,采用「语气助动词 + 原形动词」的方式来表达。如上章所述,语气助动词本身即具有不确定语气。用「语气助动词 + 原形动词」的方式可以表达各种「不确定」的情况。例如:
Students should study every day. (学生每天都应该要读书。)
语气助动词 should 加上原形动词 study,表示「应该读书」,属于条件语气,表达的是「不确定」的情况:「应该要读书」并不等于「真的有读书」。这个例子属于上章所述的语气助动词「一般用法」。
I have no idea where he should be right now. (我毫无概念他现在会在什么地方。)
名词子句 where he should be right now 的动词片语 should be 包含语气助动词、带有不确定的「条件语气」,表示「猜不出来他会在什么地方」。这个例子属于上章所述的语气助动词「猜测用法」。 不论是一般用法还是猜测用法,只要动用到语气助动词加原形动词,都可以用来表示「不确定」意味的「条件语气」。
假设语气表达的是「非事实」的情况,也就是「说假的、讲反话」,采用「过去」为表达方式。亦即:现在时间,动词却采用「过去式」;过去时间,动词却采用过去的过去,即「过去完成式」。以下分成现在、过去、未来三种时间分别说明。
If I were you, I would accept the offer. (换作是我,我就会接受这个条件。)
句中的 if I were you 是个表示条件的副词子句,但是这个子句中表达的是一种「与事实相反」的情况:「假如我是你」。这种「非事实」的假设应该采用「假设语气」来表达,也就是把动词变成「过去」。子句中的主词是 I,时间是现在。 be 动词变成过去来表示假设语气时,正式的用法一律采用 were 而不用 was。如果说 If I was you,这种说法并不能算错,但是属于比较不正式的讲法。
接下来的 I would accept the offer 是主要子句。这个子句表达的是假设情况之下的结果:如果如何,「就会」如何。这个子句也必须采用动词的「过去」来表达假设语气,这时候必须动用到上一章提过的四个过去拼法的语气助动词之一:would, should, could, might,分别表示「就会、就应、就能、就可」。以过去拼法的语气助动词来表达「非事实」的假设语气,后面接的仍然是原形动词。
不采用最常见的直说语气来叙述事实,反而采用「非事实」的假设语气,拿上面这个例子来说是为了在劝说别人时表达出比较「委婉」的语气。
上面这个例子也可以采用倒装的形式,如下:
Were I you, I would accept the offer.
采假设语气的条件副词子句,如果子句中有 be 动词或助动词(例如完成式的 have),可以选择把从属连接词(如 if)省略掉,而把be动词或助动词倒装到句首来取代从属连接词。再看一个例子:
I should like to give it a try, if I knew how. (我会想要试一试,只可惜我不懂。)
主要子句 I should like to give it a try 时间是现在,采用过去拼法的语气助动词 should 来表达「非事实」语气。如前所述,假设语气的主要子句中一定会有一个过去拼法的语气助动词。条件副词子句 if I knew how 中则是采用过去拼法的动词 knew 来表达「非事实」语气。因此,听到这句话的人可以体会出:事实上此人是因为不懂,才无法尝试(I can’t give it a try because I don’t know how)。这个条件副词子句,里面并没有 be 动词或助动词,因此不能用倒装的方式来省略连接词。
If I had wings, I could fly to your side. (要是有翅膀,我就能飞到你的身边。)
这种说法是为了表达「恨不得如何」的渴切语气。条件副词子句 if I had wings 时间是现在,采用过去式的动词 had 来表达「非事实」语气。主要子句 I could fly to your side 仍然有一个过去拼法的语气助动词(could),才能够表达「非事实」语气。
He might be able to help if he were here. (要是有他在,说不定他能帮得上忙。)
这是采用假设法语气来表示「惋惜」:事实上他不在、也无法帮忙(He’s not here, and he can’t help.)。时间是现在,条件副词子句 if he were here 中采用过去式动词were来表达「非事实」语气。主要子句 He might be able to help 中依旧有一个过去拼法的语气助动词(might),来表达「就可能如何」的结果。这个句子,因为在条件副词子句中有 be 动词,所以可以用倒装来取代连接词,如下:
Were he here, he might be able to help.
可以先做一个小归纳:表示「非事实」的假设语气的句子,如果采用一个条件副词子句配合一个主要子句的形式来表达,那么在表示结果的主要子句当中一定会有四个过去拼法的语气助动词之一(would, should, could, might)来表示「就会、就应、就能、就可」。这些语气助动词一定是过去拼法,因为必需用过去拼法才能表达「非事实」的假设语气。
不过,假设语气的句子有许多种包装方式,不见得一定要采用「条件副词子句 + 主要子句」的方式,也不见得都是用if来连接。例如:
Suppose you had three wishes, what would you wish for? (假如你有三个愿望,你会许什么愿?)
这个句子中,suppose 就是从属连接词,功能和if相同,引导条件副词子句 suppose you had three wishes,句中以过去式的动词 had 来表达「非事实」语气。后面的 what would you wish for 是主要子句,采用过去拼法的语气助动词 would 配合原形动词 wish for 来表达「非事实」的假设语气。请注意:这个主要子句中仍然有一个过去拼法的语气助动词(would),这是所有「非事实」假设语气主要子句的共同点。下面这个句子的情况就不一样了:
If only she loved me, too! (要是她也爱我就好了!)
这个句子其实并不完整,有经过省略。在从属连接词if后面加上 only,往往就只看得到条件副词子句而缺乏主要子句,表示「如果…就好了!」。一般在表示「如果…」的副词子句后面应该有个主要子句来表示「就如何」,这样才算完整。但是采用 if only 来引导条件副词子句的话,后面的主要子句通常会省略掉。所以,If only she loved me, too! 这个条件副词子句后面并没有主要子句来交代「就如何」,因为被省略掉了。再看一种变化:
I wish I had the money! S V O(名词子句) (要是我有那笔钱该有多好!)
你看到一件很想买的东西,偏偏没有钱,就可以用这个句子来表达惋惜的语气。这是个复句,但是并没有条件副词子句在内。主要子句的主词是 I、动词是 wish,后面用名词子句 I had the money 当 wish 的受词。
Wish这个动词,通常用来表示「与事实相反的愿望」,所以它后面的受词子句应该采用「非事实」的假设语气,也就是用「过去」来表示(如had)。下面这个句子的情况又不一样:
It’s time you started living on your own. S V C 名词子句 (你开始独立生活的时间已经到了。)
如果子女已经大学毕业却还在家和父母同住,这种情况在美国相当少见。这时候家长可能会和子女说这句话。主要子句的主词 it 是个虚字、假主词。动词是 is,后面的 time 是主词补语。接下来 you started living on your own 是个名词子句,可以说就是主要子句真正的主词,但是向后挪、用虚字it暂代主词位置。主要子句的时间是现在,动词采现在简单式的 is,这是叙述事实的语气(时间真的已经到了)。名词子句中表达的情况(你开始独立生活)却是非事实(因为并没有开始),所以要用过去式 started 来表达假设语气。
如果句子的时间本来就是在过去,动词又要采用过去来表达「非事实」的假设语气,那么「过去的过去」就是「过去完成」,所以过去时间的假设语气应采用「过去完成」来表示。
过去时间的假设语气,如果采用标准的「条件副词子句+ 主要子句」的句型来包装,那么条件副词子句中的动词应该用过去完成式(had + Ven),主要子句中的动词则是采用语气助动词的过去拼法(would, should, could, might)、后面接原形动词的完成式(have + Ven)。因为,这种情况的主要子句仍然要表达「就会、就应、就能、就可」的「非事实」
结果,所以里面还是会有一个过去拼法的语气助动词,这和现在时间的假设语气是完全一样的。例如:
If the landslide had occurred a few seconds later, the bus could have passed through safely. (土石流要是晚几秒发生,巴士就可以安全通过了。)
这句话背后的事实是:土石流就是早了那几秒,造成巴士遭到掩埋。因为,这个句子叙述过去的事情,却采用过去完成来表示非事实:if 引导的条件副词子句中用过去完成式 had occurred,主要子句中也是采用过去完成式,但是分成语气助动词的过去( could,表示「就可」)、以及原形动词的完成(have passed through)。这个句子,因为条件副词子句中有助动词 had,所以可以选择用倒装的方式来省略从属连接词 if,如下:
Had the landslide occurred a few seconds later, the bus could have passed through safely.
再看一个例子:
A. The accident could have been prevented if the driver had been more careful. (那场意外本来是可以避免的,只要驾驶更小心一点。)
若采取直说语气叙述,事实是这样的:
B. The accident happened because the driver was not careful. (意外发生了,因为驾驶不够小心。)
这是发生在过去的事情,主要子句的动词(happened)与原因副词子句的动词(was)都用过去简单式,表示这是叙述事实。反之,采用「非事实」的假设语气,那么条件副词子句的动词就要再变成过去(过去完成式 had been);表示结果的主要子句中则要采用过去拼法的语气助动词(这是所有假设语气的共同点)加上原形动词的完成式(could have been),也就是上述 A 句的情况。这个句子,因为条件副词子句中有助动词 had,所以也可以选择以倒装的方式来省略从属连接词,如下:
C. Had the driver been more careful, the accident could have been prevented.
未来的事情尚未发生,所以大致都属于「不确定」的范围,一般会采用「条件语气」来表示,例如:
The weatherman says it will rain tomorrow. (气象报告说明天会下雨。)
如果把句中的 will 视为表达时态的「文法助动词」看待,那么 will rain 就是一般所谓的「未来式」。不过,这个上下文如果采用 may rain, might rain, could rain, should rain 等等任何一个「猜测用法」的语气助动词也都可以,这表示 will rain 当中的 will 也可以视为「猜测用法」的语气助动词。
如果把未来式中的 will 视为「猜测用法」的语气助动词、表示某件事情未来发生的可能性,那么「未来式」这个名称就可以从动词时态中取消,只剩下现在式与过去式。发生在现在的动作采用现在式、发生在过去的动作采用过去式,这两种都是属于叙述事实的「直说语气」。未来才会发生的事情尚不确定,需要用到包括will在内的语气助动词来做猜测,属于猜测用法的「条件语气」。
如果一件事情在未来有可能发生,那么在时间副词子句或条件副词子句中可以当作「已经来到」或「真正发生」了,也就是采用叙述确定事实的「直说语气」来叙述,这时候就不能使用带有不确定语气的助气助动词了。传统文法那条规则「表示时间或表示条件的副词子句,用现在式代替未来式」,就是用在这种场合。例如:
When you graduate, there will be several jobs waiting for you. (当你毕业时,将有好几个工作在等着你。)
虽然对方目前尚未毕业,但是时间副词子句 when you graduate「当你毕业时」是把时间「当作」已经来到毕业的时候,也就是把未来的时间当作就是现在,所以应该采用叙述事实的「直说语气」现在式来叙述、不再能使用不确定语气的语气助动词 will。
If you graduate without trouble, I’ll buy you a new car. (如果你顺利毕业,我会买辆新车送你。)
目前还不知道对方能不能够顺利毕业,但是条件副词子句 if you graduate without trouble「如果你顺利毕业」直接假设对方是顺利毕业了,所以应该采用叙述事实的「直说语气」现在式来叙述,不再能够使用不确定语气的语气助动词 will。
上述的两种情况,都是把「未来有可能发生的事情」当作真正发生了,因而采用「直说语气」当作事实来叙述。 「假设语气」的未来时间则不相同。假设语气表达的是「非事实」。用在未来时间,表达的也是「与事实相反、绝无可能发生」的情况,仍旧采用「过去」作为表达方式。例如:
If I were to tell the truth to my boyfriend, he would kill me! Were I to tell the truth to my boyfriend, he would kill me! (我要是跟我男朋友说真话,他会把我宰了!)
女生如果劈腿,这种事情对男朋友当然要守口如瓶,再过一万年也不会说。上面这个句子,时间设定在未来,表达的是一种「绝无可能发生」的事情:就是「和男朋友说真话」。这时候应该采用「非事实」专用的「假设语气」来叙述。
未来时间的假设语气,在条件子句中的动词通常是采用 were to + V 的形式来表示。这是 be going to 的一种变化:依「假设语气」的惯例,采用「过去」作为表达「非事实」的手段,因而变成过去拼法的 were to(正式用法中不论人称,一律拼成 were。若拼成 was to 则是比较不正式、口语化的用法)。在主要子句中,仍然是四种「过去」拼法的语气助动词(would, should, could, might)配合原形动词,用来表达「非事实」。再看一个例子:
If he were to graduate on schedule, you could call me blind. Were he to graduate on schedule, you could call me blind. (他要是也能够顺利毕业,你可以说我眼睛瞎了。)
这句语是料定了此人绝无可能准时毕业。未来时间也绝无可能发生的事情,应该采用「非事实」的「假设语气」,也就是条件子句中用过去拼法的 were to graduate、主要子句中也采用过去拼法的 could call。
未来的事情因为尚未发生,所以比较无法确定。如果是绝无可能发生的事情,应该采用叙述非事实的「假设语气」来叙述。但是,如果是发生的可能性甚低、但是并不排除「万一」,这种界乎「事实」与「非事实」之间的情况,可以采用下列的方式来叙述:
If the man should prove innocent, I will apologize openly. Should the man prove innocent, I will apologize openly. (万一此人证实是无辜的,我会公开道歉。)
在表示条件的副词子句中用 should prove,意思是「万一证实如何」,表达一种「可能性甚低、但并非绝无可能」的情况。在这个前提之下,主要子句可以采用像 will apologize 之类,表示「真的有可能要道歉」。这种情况,严格讲起来并不属于「假设语气」的范围,因为它叙述的是有可能发生的事情,并不是「非事实」。但是,主要子句的动词如果改成过去拼法的 would apologize,那是采用了叙述「非事实」的「假设语气」,这时的口吻则是「他应该有罪,所以我没有必要道歉」。再看一个例子:
If an asteroid should strike Earth in an hour, humans could become extinct in a short time. Should an asteroid strike Earth in an hour, humans could become extinct in a short time. (如果一小时后有小行星撞上地球,人类可能会在短期内绝种。)
条件子句中采用 should strike 这种动词,表示「不排除万一」。主要子句中的动词采用过去拼法的 could become,表示这是「非事实」的「假设语气」,也就是「应该不会真的发生」。但如果主要子句动词改为现在拼法的 can become,就不再是「非事实」的叙述,而是「真的有可能发生」。
做个小归纳:未来时间,如果在条件副词子句中采用「should + 原形动词」,意思是「不排除万一」。主要子句如果采用现在拼法的语气助动词如「will + 原形动词」来配合,意思是「真的有可能发生」,这时候这个句子属于表达「不确定」情况的「条件语气」。反之,如果主要子句采用过去拼法的语气助动词如「would + 原形动词」,这个句子则属于表达「非事实」的「假设语气」。
条件子句与主要子句,这两个子句的时间可能不一样、语气也可能不一样,必须依情况判断,不可死记公式。例如:
If I had married much younger, I might have my own grandchildren now. Had I married much younger, I might have my own grandchildren now. (我要是年轻得多就结婚,现在可能自己有孙子了。)
条件子句设定的时间是「年轻得多的时候」,也就是「过去时间」;叙述的是「非事实」(实际上并没有那么早结婚),要采用「过去」为表达「假设语气」的手段。而「过去的过去」就是过去完成式,因此条件子句的动词是 had married。但是主要子句设定的时间是「现在」(时间副词是 now);叙述的也是「非事实」(实际的情况是现在自己并没有孙子),要采用「过去」来表达「假设语气」。这时候只要用过去拼法的 might have 就行了。
另外,两个子句采用的语气也可能不一样,例如:
I should have ignored the insult then, only that I was too angry. (当时我应该不理会那个侮辱才对,只不过我太生气了。)
主要子句动词采用过去拼法的语气助动词 should 配合完成式的动词 have ignored,用这种「过去完成」的组合来表示「过去时间非事实」的「假设语气」(事情发生在过去,而且当时自己并没有选择不理会它)。但是连接词 only that(意思是「只不过」)把语气扭转过来:only that 后面的从属子句叙述的是「事实」,采用「直说语气」。时间仍然在「过去」,采用「直说语气」来叙述的话就应该使用「过去简单式」,所以动词用的是 was。
命令句,又称为祈使句,表达的是「希望成真」的语气,采用原形动词来表示。
如果是直接命令句,通常会省略主词(you)、直接以原形动词开头来表达命令或祈求。例如:
Watch your step! V O (走路小心!)
这是提醒对方走路要小心,并非叙述事实的「直说语气」、也不是「非事实」的「假设语气」,而是「希望成为事实」,属于命令或祈使语气,采用原形动词(watch )来表示。乍看之下没有主词,是因为在直接命令句中,主词 you 通常会省略掉。
许多文法书主张:Watch your step 这种说法等于 You should watch your step,笔者从前也接纳这种说法。不过,严格讲起来,这两种说法的语气其实并不相同。 You should watch your step 的动词片语是 should watch,用上了语气助动词 should。而一旦用到了语气助动词,这个动词片语就属于表达「不确定」情况的「条件语气」:「你走路应该小心」,意思是说对方「有责任、有义务」要小心,这是对方的事,和说话的人无关。而 Watch your step 则是属于「命令语气」,表示「我要你小心」。仔细玩味会发现,这两种语气是不一样的。只有「命令语气」才能够表达说话者的主观意愿。再比较一组例子:
You may come in. Come in!
前者用到语气助动词 may,属于表达「不确定」的「条件语气」,意思是「你想进来的话就可以进来」,这纯粹是对方的事,与说话者无关。后者则直接采用原形动词 come in,属于表达「希望成真」的「命令语气」,这种语气的意思是「我要你进来」,表现的是说话者的主观意志,和 You may come in 的「条件语气」并不相同。
比较不容易理解的是「间接命令句」。这种命令句,特色是它的主词并不省略,而动词则和直接命令句相同、同样采用原形动词。这种间接命令句通常都出现在由连接词that引导的名词子句中,主要子句则从内容上暗示后面的 that 子句表达的是个命令。例如:
It is necessary that the letter be sent out before noon. (这封信有必要在中午之前寄出。)
从 it is necessary 来看,可以看出后面那个子句中的叙述尚未成为事实,只是一件说话者要求「必须要做」的工作。换言之,那是属于命令句的语气,应该采用原形动词 be 来表示。如果是直接命令句,应该省略主词 you、直接用原形动词开头,如下:
Send the letter out before noon.
但是,上面那个间接命令句的主词并非 you,而是 the letter,所以主词并不省略。动词则仍旧采用原形动词,才能表达命令的语气。再看一个例子:
I insist that the letter be sent out before noon. (我坚持这封信一定要在中午之前寄出。)
这个句子,前面用 I insist 表示这是「要求成真」,后面则采用原形动词 be 来表现命令句语气,表示「信在中午之前寄出」尚未成为事实,只是个「祈使、命令」。比较一下底下这个句子:
I insist that the letter was sent out before noon. (我跟你讲真的:这封信真的是在中午之前就寄出去了。)
这个句型看起来和上一句相同,但是意思不一样:时间是过去(before noon),动词采用过去简单式 was,表示这里是采用叙述事实的「直语气」来叙述过去真正发生的一件事:信真的寄掉了。 间接命令句要注意:它要用原形动词来表达,而原形动词没有人称变化、也没有时态的差别。例如:
The coach suggests that the player stay at school. (教练建议这名球员就住在学校好了。)
前面的 the coach suggests 表示这是「希望成真」,所以后面的叙述采用「间接命令语气」,也就是用原形动词来呈现。这时候虽然主词是第三人称单数的 the player,动词仍然要用原形的 stay,不加-s。
The boss demanded that everybody work overtime. (老板要求大家都要加班。)
前面的 the boss demanded 表示这是「希望成真」,所以后面要配合「间接命令语气」,采用原形动词。这时候,虽然主要子句动词 demanded 是过去式,但是后面还是用原形动词的 work,并没有时态的差别。