长平之战
长平之战
公元前260年秋,秦昭襄王(嬴稷,公元前306—前251年在位)离开国都咸阳(今陕西咸阳),亲自赶往河内(今河南北部黄河以北一带)。河内是秦军刚从韩国手里夺来的地方,王一到,下了两道命令:给河内百姓每人赐爵一级;把十五岁以上的男子全部征发,开赴长平(今山西高平西北),堵死对面赵军的援兵与粮道。爵级在秦国本是拿命换的东西——按商君留下的法,斩敌首一颗才晋爵一级——如今在新占领的土地上成批发下去,换的是这片土地上每一个还能走路的男丁。
这一年,是秦赵两国为上党之地开战的第三个年头。几十万军队压在同一片山谷里,粮食从几百里外运来,壮丁一年年从田里抽走。后人把这种仗叫作总体战:两个国家把全部的人口与粮账一起押上,几十万人在外经年,看谁先见底。仗打到这个地步,一个问题就摆在账面上:这样一场拖了两年的大战,吃掉的是谁的人口、谁的粮食?两千年后的人记住了这场仗的名字,记住了一个数目;而当时两边朝廷上争的、将营里算的、敌国君臣事后拿来说事的,全是这两样东西的去向。
上党的归属
上党(今山西长治一带)是太行山西南的一片高地,当时属韩国,与韩国本土之间隔着太行山,靠几条孔道相连。秦昭襄王四十三年(公元前264年)起,白起连年攻韩:先拔九城,继攻韩国的南阳(今河南济源至沁阳一带,不是后来的南阳郡),断绝太行道,到四十五年(公元前262年)攻下野王(今河南沁阳),上党与韩国都城郑(今河南新郑)之间的路彻底断了。《史记》记白起的战功,几乎每笔都带一个斩首数:攻韩拔九城,斩首五万;更早的伊阙之战斩首二十四万,华阳之战斩首十三万。这些数今天一个也核对不了——战国兵数自来夸饰——能确定的是记账方式本身:到这个年代,战争已经按「万」一级一级地记杀了。
上党郡守冯亭面对的局面,《史记·白起王翦列传》记下了他的原话:「郑道已绝,韩必不可得为民……不如以上党归赵。赵若受我,秦怒,必攻赵。赵被兵,必亲韩。韩赵为一,则可以当秦。」归韩的路断了,独立守不住,降秦或降赵只剩二选一。这份降书罕见的地方在于,它把后果写在了前头:赵若受地,秦必攻赵。一个边郡守将的择向,就这样把两个大国的战争排进了日程。
赵国朝廷上,两派意见都留了文字。平阳君赵豹(赵国公族)说「不如勿受。受之,祸大於所得」;平原君赵胜(赵孝成王的叔父,时为赵相)说「无故得一郡,受之便」。赵孝成王(赵丹,公元前265—前245年在位)自己的算法,《史记·赵世家》也记了下来:「今发百万之军而攻,逾年历岁未得一城也。今以城市邑十七币吾国,此大利也。」——派大军去攻城,打上一年也得不到一座;如今十七座城送上门来。「百万」是夸口,「十七」《战国策》里另作「七十」,数目对不齐;对得齐的是那句「逾年历岁未得一城」——战国的战争账,已经按年和按城来算了。赵国收下了上党,封冯亭为华阳君。几百年后蜀汉的史家谯周说,长平之祸的祸本在后来换将,不在受地;太史公司马迁却在平原君的传末批了四个字:「利令智昏」。祸从哪一步算起,古人自己就分两造。
两家的家底,能说的很少。关于赵国,当时人只留下一句定性的话:「赵,四战之国,其民习兵」——四邻皆敌,百姓惯战——这是当时人的印象,说不上统计。秦国那边,商君之法留下的是一套汲取的办法:斩一首爵一级,五家十家相保连坐,按户征粮按名派兵;而「发年十五以上」这种突破常例的征发,到此时也已写在秦王的命令里。至于两国各有多少户、多少口、能征多少兵,一页账也没有留下来;今人用各种方法推算的战国人口,是后人的模型,当时的账面上没有。
换将前后
秦昭襄王四十七年(公元前260年),秦派左庶长王龁攻取上党,上党的百姓不肯归秦,逃入赵国。「赵军长平,以按据上党民」——《史记》这十个字说明了赵军的处境:它是为接收和守住新地与难民而来,身后没有一条可退的线。四月,王龁攻赵,赵国以廉颇为将。头几个月的仗,史书逐月有记:赵军出击,伤了秦军的斥候,秦斥候斩了赵军一名裨将;六月,秦军攻陷赵军营垒,取二鄣、四尉;七月,赵军改筑垒壁固守,秦军又夺去西边的垒壁。此后就成了一句话:「廉颇坚壁以待秦,秦数挑战,赵兵不出。赵王数以为让。」挑战的是秦军,着急的是赵王——消耗先写在朝廷的脸色上,不在战报上。
对峙有多长,是笔糊涂账。从四月开战到九月决战,《史记》本篇给出的月份只排得下半年上下;平常所说「拖了两年」,是把前两年争夺上党的战事一起算进去的合读。别处的记法也不齐:《吕氏春秋》说秦「三年然后决」,北宋《资治通鉴》逐年编排时,把中间一年整年空过。时长订不死,性质订得死:这是一场拼消耗的仗。几十万人常年在外,国内的粮与丁一起往谷地里填。
赵廷的解法,先在战场以外找。初战失利、折了一名都尉之后,赵王遣使者郑朱入秦求和。谋臣虞卿事先说过:秦国必把郑朱摆给各国使臣看,天下以为秦赵已经谈妥,就没人肯来救,和谈也就谈不成了——不如携重宝结好楚魏,让诸侯不得不救。赵王没有听。后来范雎(秦相,封应侯)果然把郑朱隆重摆出来给各国贺战胜的使臣看,和谈终究没有谈成;这一招是否真挡住了诸侯的援兵,史书没有再讲。粮的一路,《战国策》与《史记·田敬仲完世家》各记了一版:「赵无以食,请粟于齐,而齐不听。」劝齐王借粮的人说,今日亡赵,明日就轮到齐楚。这版记载的毛病不小:劝齐的人,一书说是苏秦,一书说是周子,苏秦此时早已死了几十年,系名是后人安上去的;而且《史记》写长平决战的主干一篇,并没有直书赵国缺粮,只写了秦国断绝赵的粮道。所以「赵廷是被粮逼到换将」这个因果,是从两头的记载合起来推出来的,不是哪一句史文直说的——能直说的是另一层:仗拖下去,赵国朝廷先拖不起了。
换将的过程,《史记》写了两条线。外面一条:范雎派人携千金入赵行反间,散布的话是「秦之所恶,独畏马服子赵括将耳,廉颇易与,且降矣」——秦国所怕的,只有马服子赵括为将,廉颇好对付,就要降了。马服子就是名将赵奢之子赵括——赵奢封马服君,故人称其子为马服子。里面一条:赵王早因廉颇屡有损失而怒,听到反间之言,便定下换将。反间这件事,只见于文献,三处记载同出一源,算不得三证;千金换掉主将,在《史记》里还是反复出现的写法,后来赵国的宠臣郭开受人重金,先后毁掉廉颇与李牧,同一路数。反间或许有,一句话定换将则是把过程简化了;外因与赵廷自己厌战之间谁轻谁重,留下的材料裁不了。
反对换将的声音也记了下来,而且记得异常完整。赵奢生前说过,若是赵国让括为将,「破赵军者必括也」;病重中的上卿蔺相如说,大王因虚名用括,好比胶住瑟柱再去鼓瑟;赵括的母亲上书赵王,一件一件对比父子为将的不同,最后只求一事:他日兵败,勿连坐其家。王答:吾已决矣。这些话是否当场如此说过,无从验证;能验证的是《史记》里换将那句原文:「使赵括代廉颇将以击秦。」任命自带一个「击」字。这一换,换掉的是坚壁这条路线;新将到任的条件就是进攻。假使不换将呢?两条粮道谁先见底,史料给不出裁决:赵国这边,齐粮不来,续力已经到顶;秦国那边,国王亲临河内、发十五岁以上的男丁,是拿国王的信用给粮账续期。守也不是白守——二鄣、四尉、西垒壁,廉颇的防线已被两度穿透。拖下去谁赢,今天算不出来;算得出来的是,朝廷既已拖不起,换谁去,都得进攻。
包围与断粮
赵军换将的消息一到,秦国也换将:暗中以白起为上将军,王龁改任副将,军中敢泄露白起为将者,斩——秦国本纪里白起自始就是主将,暗中换将是列传的讲法。白起就是伊阙、华阳那些斩首数的主人,早年已封武安君。赵括到军,更动约束,出兵击秦军。秦军佯败退走,暗张两支奇兵:二万五千人绕到赵军背后,五千骑兵穿插进赵军营垒之间,赵军被切成两段,粮道断绝,只得就地筑壁坚守,等待救兵。救兵与粮食最后是被谁掐断的,《史记》记了秦国接下来的动作:秦王闻赵食道绝,亲自赶到河内,赐民爵各一级,发十五岁以上全部开赴长平,遮绝赵国的救兵与粮食。唐人给《史记》作注,特地点了一句:河内「时已属秦,故发其兵」——总动员踩在自己刚吞下去的土地上。这个行动要两头读:它是赵军绝望的原因,也是秦军自己也快见底的凭据。围住几十万人的一方,和快被饿死的一方,同时在掏空自己。
到九月,赵军被围已四十六日不得食,「皆内阴相杀食」。围与饿这两件事,不只有《史记》一家记着:成书距事件仅二十一年的《吕氏春秋》已有「秦人之围长平也,其卒逓而相食」——那部书没有记数字,数字是后来东汉注家补上去的。赵军分成四队,轮番突围四五次,突不出去;赵括亲率锐卒搏战,被秦军射杀。主将一死,全军投降,《史记》的记数是:卒四十万人降武安君。
降卒的处置,白起自述的理由是:「前秦已拔上党,上党民不乐为秦而归赵。赵卒反覆,非尽杀之,恐为乱。」于是挟用欺诈,尽数坑杀,只放回二百四十个年少的归赵。前后合计,《史记》记为斩首虏四十五万,赵人大震。几十万俘虏摆在那里,本身就是一道粮食题:被围的赵军已经四十六日不得食,围住他们的秦军,粮同样要从几百里外运来——养,养不起;放,等于把几十万人还给赵国;收编进秦军,「上党民不乐为秦」的疑心又堵着这条路。粮与疑两样都在,史书写下的答案是杀。这个推法是从结果往回推的,分寸只能到这里;把杀降与斩首计爵的法子直接挂钩,解释得通,证据没有。
坑杀这件事,还有文字之外的一头。1995年,山西高平永录村,农民取土时发现成坑的人骨,考古队随后作了发掘。发掘简报我们没有直接读过,按公开的转述:已清理的个体多为青壮年男性,集中乱葬,以被杀伤之后掩埋的特征为主——传统印象里「活埋」的画面,靠不住。已发现的坑点,规模与四十万相差悬殊;但遗址并未全面发掘,「发现得少」既不能证那个数,也不能否那个数。它能钉住的是另一头:坑杀实有其事,不只是写在书上的。至于被坑者都是些什么人,白起自己那句「上党民不乐为秦而归赵」留下一个口子——倒在那片谷地里的,未必只有邯郸来的兵;这只是从字缝里读出的疑义,没有别的证据。
战后的清点
决战之后的第一年,两边各自清了账。赵国一边,《史记》只写了三个字:赵人大震。秦国一边,军队分路北上,定太原郡;韩、赵割地求和——韩割垣雍,赵割六城——正月罢兵。争了两年多、拖垮了两家的上党之争,以秦国拿到实地了结。
秦国的第一张账单来得很快。下一年(公元前259年)九月,五大夫王陵攻赵都邯郸(今河北邯郸),战事不利,《史记》记「陵兵亡五校」——校是军中的编制,一校多少人,先秦的军制里只有这一处孤例,无从折算。秦王想让白起替王陵,白起推病不受命,话说得很直:「邯郸实未易攻也……秦卒死者过半,国内空。」这句「死者过半」出自他拒绝出征的场合,是辩论场上的话,说的是哪一段时间的数,没有交代——只能当作当事人自述其损耗的量级来听,不能换算成数。战国末年的文献里,这个印象到处都在:《吕氏春秋》的说法是「秦虽大胜于长平,三年然后决」,下面一句原文缺了一字,大意是士民疲敝、粮食耗尽;《战国策》另有一章记秦昭襄王自己承认「前年国虚民饥」——那一章的真伪存疑,但「秦也被拖干了」,是当时人多处都在讲的。邯郸城下,秦军围了两年多,攻不下来,范雎举荐的将军郑安平率二万人降赵,楚、魏的救兵赶到,围解。围城里的邯郸人,「炊骨易子而食」。合围几十万人的军队,转过年去攻一座孤城攻不下来——决战的赢,并不自动兑成灭国的赢。窃符救赵、毛遂定纵,都是那场围城里的故事,各有其传,这里不展开。
白起的结局在同一时期。秦昭襄王五十年(公元前257年),白起被赐死于杜邮(今陕西咸阳附近),临终说:「长平之战,赵卒降者数十万人,我诈而尽阬之,是足以死。」秦人以为他死而非其罪,乡邑都祭祀他。从被范雎嫌忌到杜邮赐死,这条因果史书讲得戏剧味很重,只能作余波看;但那两句临终的话,说明坑杀这笔账,当时就压在下令者自己身上。
赵国那本账,是敌国替它清点的。邯郸解围数年后(公元前251年),燕王喜(公元前254—前222年在位)用燕相栗腹的谋划伐赵,开战的理由是:「赵壮者尽于长平,其孤未壮。」——燕国拿来做开战情报的,正是一份人口账:五年过去,长平死者的孤儿们还没有长大。燕将乐间反对伐赵,他并不否认这本账,只说「赵,四战之国,其民习兵」。争的是程度,不是有无。燕人按这本账打的仗,输得干脆:《史记》记廉颇率军迎击,燕军大败于鄗(今河北柏乡北),燕国反过来割城求和。这是「谁的人口被吃掉了」最接近当时人读数的一次;它出自敌国主战派之口,是定性,不是统计。赵国的实际损伤,比这十个字能证明的只会更多或更少,没有任何材料能把差额补出来。
坑杀之数
四十万这个数,在《史记》里出现了七次,本纪、世家、列传互见;同书另有「前后斩首虏四十五万」——那是两年里历次战败与最终降卒的累计,不等于坑杀当场的人数——以及「数十万」等说法,各篇对不齐。七见看着像众证,细查多半是同一来源的互相照抄。《史记》这一系之外,成书距事件仅二十一年的《吕氏春秋》记了围、记了饿,独独不记数。司马迁身后,这个数很快成了不用出处的常识:楚汉之际陈馀致书秦将,已把「北阬马服」与白起赐死铸成一套功罪;扬雄《法言》说长平之战四十万人死,王充《论衡》说「四十万众同时皆死」,都是脱口而出的引法;到东汉末,高诱给《吕氏春秋》作注,又把这个数补进了那条早于《史记》的围城记载——于是连先秦的书看上去也带着这个数。这个数流传得极广,源头却只有一条。
后人对这笔账的争法,古人自己也开了头。三国时何晏作《白起论》,默认四十万这个数,责的是杀降这件事:坑降卒四十万,天下人看见降秦者的头颅堆成山,日后作战人人死战,何城肯下——他站在曹魏的立场上论杀降的恶果,是借秦事说战略。数字真伪、责任归属,两个争点从那时起就没有合拢过。至于坑杀细节,先秦两汉的文献只有「挟诈而尽阬杀之」七个字;后世小说里白布为号、一夜俱尽的写法,是明清人的添补。
赵括的名声,是另一本越传越厚的账。战国末年的韩非已经写下「赵任马服之辩,而有长平之祸」——以言取人的批评,距当时不远就定了调;此后赵奢的预言、括母的上书、蔺相如「胶柱鼓瑟」的比喻一层层加上去,「纸上谈兵」四个字则是更晚才定型的成语,先秦两汉并无此语。事实与评价要分两条线看:各层记载唯一没有分歧的一点,是赵括到任即出击——那是他任命里自带的任务。把四十万人的覆没记在他一个人的才具上,是后世叙事的省力;反过来把他写成全无责任的替罪者,同样越出了材料。
这场拖了两年的仗,吃掉的是谁的人口和粮食?能答的部分是方向:上党人先付——国被断道,人成了难民,家园先成了战场;赵国的壮丁整代地付——敌国拿「其孤未壮」做了开战的情报;秦国也付到了底——付到国王亲临新占之地、拿爵级换十五岁的男丁上前线。答不了的部分是数:两边各死了多少人、各耗了多少粮,当时没有留下一本对得清的账,今天也一样。四十万这个数留了下来,被讲了两千年,也被疑了两千年;而它背后那笔真账,当时就没有人能结。赵国此后又撑了三十八年才亡,中间还打赢过邯郸的守城战——把秦并天下的结局记在长平头上,是事后看的便宜。长平这一页上,当时两边各自认下的,只有一件事:仗打完了,两家都空了。