38 查询Linux的命令执行退出状态

「Linux命令基础」查看用户和用户组状态 Linux用户管理实战摘要 本文介绍了Linux系统中用户状态查看和身份切换的核心技能。主要内容包括: 用户状态查看:使用whoami、id、who和w等命令获取用户信息,包括登录状态、活动情况和权限级别。 用户切换: su命令实现用户身份切换,su - username会加载完整环境 sudo机制提供精细权限控制,可通过visudo配置免密执行特定命令 实战案例: 演示了用户创建、环境变量加载和工作目录验证 展示了sudo权限配置和特权命令执行 说明了用户状态监控和会话管理 常见问题:涵盖认证失败、命令找 阅读详情


在Linux 系统中,每当命令执行完成后,系统都会返回一个退出状态。该退出状态用一整数值表示,用于判断命令运行正确与否。若退出状态值为 0,表示命令运行成功;而退出状态值不为 0时,则表示命令运行失败。最后一次执行的命令的退出状态值被保存在内置变量“ $?”中,所以可以通过echo语句进行测试命令是否运行成功。 POSIX规定了以下几种退出状态和退出状态的含义。


状态值
含义
0
表示运行成功,程序执行未遇到任何问题
1-125
表示运行失败,脚本命令、系统命令错误或参数传递错误
126
找到了该命令但无法执行
127
未找到要运行的命令
>128
命令被系统强行结束
以下是一些实际的例子:

alloy@raspberrypi:/home$ ls
alloy  pi
alloy@raspberrypi:/home$ echo $?
0
#运行成功
alloy@raspberrypi:/home$ ls test
ls: cannot access test: No such file or directory
alloy@raspberrypi:/home$ echo $?
2
#传递参数失败
alloy@raspberrypi:/home$ test
alloy@raspberrypi:/home$ echo $?
1
#传递参数失败
alloy@raspberrypi:/home$ alloy
-bash: alloy: command not found
alloy@raspberrypi:/home$ echo $?
127
#没有这个命令




ACR38-CCID V4读卡器Linux驱动调试全指南 智能卡读卡器是嵌入式安全与身份认证系统的关键外设,其底层依赖USB协议栈、CCID类设备规范及ISO/IEC 7816-4 APDU通信机制。理解CCID驱动加载、PC/SC中间件配置与裸协议控制,是实现金融终端、社保卡系统及国产信创平台稳定集成的技术前提。本文聚焦ACR38-CCID V4这一典型USB智能卡设备,详解Linux环境下内核模块ccid_serial加载、/dev/ttyACM节点生成、pcscd服务适配、固件升级避坑,以及绕过PC/SC使用libusb直发CCID指令的工程实践,覆盖从硬件 阅读详情

相关推荐

RTKlib操作手册--使用样例数据演示

本文将使用样例数据演示如何使用RTKLIB进行rtk差分定位。

samur2的博客 7776

Linux 命令行>状态的一种可能退出方法

Linux 命令行>状态的一种可能退出方法

chengxiaili的博客 1435

LIS3DHTR三轴加速度计Arduino驱动与嵌入式集成指南

加速度计是嵌入式系统中实现运动感知、姿态解算和振动分析的核心传感器。其工作原理基于MEMS微机械结构在惯性力作用下的电容变化,经片内ADC转换为数字信号;I²C接口因其硬件资源占用少、布线简洁,成为低功耗物联网节点的主流通信方式。技术价值体现在高分辨率(12位)、多量程(±2g~±16g)与低功耗(待机电流仅2µA)的平衡,支撑电池供电设备长期运行。典型应用场景包括可穿戴设备的姿态识别、工业预测性维护中的振动监测,以及智能硬件的敲击/跌落检测。本文围绕LIS3DHTR芯片及其Grove模块,详解Arduin

weixin_42584758的博客 594

linux状态退出

此种状态可以按ctrl+C退出

342

RS232/RS485/CAN_BUS 通信原理总结与通信波形分析

分析一:232串口信号要点:RS232,全双工,采用三线制传输分别为TXD\RXD\GND,其中TXD为发送信号,RXD为接收信号。在RS232中任何一条信号线的电压均为负逻辑关系。即:-15v ~ -3v 代表1 +3v ~ +15v 代表0测试结果与分析:如图所示,以传输一个8位二进制数值“01101010”为例,异步传输数据的一般格式为:起始位+校验位+数据位+停止位。其中,校验位为可选项。...

乔木鱼 1万+

基于UCD3138的数字控制硬开关全桥DC-DC电源设计实战解析

在开关电源设计中,数字控制技术正逐步取代传统模拟方案,以其卓越的灵活性、可编程性和强大的数据处理能力,成为应对复杂动态响应与智能化需求的关键。其核心原理在于通过高精度模数转换器(ADC)实时采样电压、电流信号,经由数字信号处理器(如ARM内核)运行PID等控制算法,动态调整数字脉宽调制(DPWM)输出,从而实现对功率级的精确控制。这种技术价值体现在能够轻松实现高级算法(如输入电压前馈、非线性补偿)、灵活配置保护参数,并通过PMBus等接口实现智能化监控与管理。其典型应用场景包括通信基站、服务器电源以及工业设

1312

linux vi 保存与退出

初探centos,vi使用记录(1)按esc-> i 进入编辑状态;(2)按esc-> q 退recording;(3)按esc -> : 进入编辑器命令输入模式,特别提醒“:”;(4)在 : _光标处输入命令                :wq  强制性写入文件并退出                :x     写入并退出                :q!    强制退出...

lzh_zhb的专栏 2928

AD服务器搭建

一、角色安装1)打开服务器管理器,添加 角色和功能;2) 点 下一步;3)点 下一步;4)点 下一步;5)点击安装;6-1)将此服务器提升为域控制器;6-2)点下一步;6)输入密码 点 下一步;7)自动生成LIXF,点击下一步;8)确认目录,点下一步;8)确认安装条件,点安装; 8)安装成功,点关闭;...

潇峰的博客 6449

Linux中如何保存与不保存即退出

Linux中如何优雅地保存与不保存即退出:文本编辑器操作速查指南

小李同学的博客 8137

6万字嵌入式最全八股文面试题大全及参考答案(持续更新)

进程上下文定义:进程上下文包含了进程执行时所需的所有信息,包括 CPU 寄存器的值、内核栈、任务控制块(TCB)等。作用:当进程被切换时,需要保存当前进程的上下文,并恢复下一个将要运行进程的上下文。中断上下文定义:中断上下文是指处理中断时 CPU 所处的状态,包括中断发生时的寄存器值等。作用:当中断发生时,CPU 会自动保存当前的上下文信息,并跳转到相应的中断处理程序。示例表格上下文描述进程上下文包含进程执行时的所有相关信息中断上下文处理中断时 CPU 所处的状态线程同步定义。

大模型大数据攻城狮的专栏 7927

4、同轴3 - RRR球面并联机构运动分析与自主移动农业水果采摘机器人设计

本文研究了同轴3-RRR球面并联机构的运动学与速度分析,采用几何与数值方法进行位置分析,并利用螺旋理论简化雅可比矩阵的推导,通过ADAMS仿真验证了结果的准确性。同时提出一种新型自主移动农业水果采摘机器人设计,具备多功能末端执行器、水果软管转移系统和配重式静态稳定性结构,旨在减少采摘损伤、提升效率。文章还探讨了该机构在机器人控制与仿真中的应用潜力,以及采摘机器人在智能化升级与多机协作方面的发展方向。

y4z5a6b7的博客 246

软件测试笔记|Linux命令基础|怎么退出当前命令?

VX公众Hao:阳哥整理软件测试笔记VX公众Hao:阳哥整理软件测试笔记。

阳哥精心梳理软件测试知识,从基础理论到实战技巧,为你打开软件测试的精彩世界,助力你的测试之路更顺畅 2188

车规SoC深度对比:高通8397 vs 比亚迪D9000 vs 联发科CT-X1/MT8676/MT2715

芯片优势弱势最适合场景高通 8397低功耗、低延迟AI和音频处理单屏算力略低HUD + 音响座舱 + 低延迟交互D9000多屏渲染、Wi-Fi7高速通信AI算力中等高端多屏座舱 + 流媒体娱乐CT-X1极高AI算力、多模态渲染功耗较高高端沉浸式智能座舱 + 多摄像头感知MT8676算力均衡、座舱应用全面GPU稍弱全栈智能座舱、音视频多任务MT2715成本低、入门座舱可用算力低,低端显示入门智能座舱、基础信息娱乐。

weixin_43199439的博客 1768

linux 退出码 / 状态码 / 错误码 对照表

errno 在 <errno.h> 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的 errno-base.h 和 errno.h,分别定义了 1-34 、35-132 的错误定义。 如何查询状态码含义? 头文件:#include <string.h> 定义函数:char * strerror(int errnum); 函数说明:strerror()用来依参数errnum 的错误代码来查询其错误原因的描述字符串, 然后将该字符串指针返回

雪的期许 5680

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux错误号查询

程序有时会异常退出,想知道退出时的返回值: linuxx

Coding猿 1119

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux的进程状态详解

进程状态概念,Linux内核的状态管理,ps指令查看进程,后台进程和前台进程,Linux内核定义的6种状态的描述和关系

m0_73693552的博客 1414

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux命令基础38-netstat命令

本文介绍Linux下的netstat命令,netstat是英文单词network status的缩写,就是网络状态查询的意思。 1. netstat -a -a表示按照各个协议,分别统计连接数。按下q退出。 2. netstat -a | less,和less命令结合使用,较少的查看内容 3. netstat -at | less, t表示TCP 4. netstat -

Anthony_tester的博客 1879

Podman Machine SSH 完全指南:深入 Podman 虚拟机 SSH 会话与退出码机制

`podman machine ssh` 是 Podman 的 machine 子系统中用于登录(SSH)到 Podman 托管的虚拟机的核心命令。本文以 [podman-machine-ssh.1.md](https://link.gitcode.com/i/035adb996af3162aef33191b5f1ec587) 手册为骨架,结合 [ssh.go](https://link.gitc

gitblog_01062的博客 713

【Linux】进程等待

38 }3942 {44 }4547 }48 }上面代码的意思是:先创建一个子进程,父子进程同时跑5s,前5s都处在阻塞状态,即S状态。中间5秒子进程退出,等待父进程来回收,此时子进程变成僵尸状态,即Z状态。

如果需要沟通,可添加微信公众号找我免费答疑 530

[Linux]——进程控制(中)

本文就进程控制中的进程等待进行了详细介绍,并配有代码和图片

麦麦的博客 2592

linux查询被误删的文件,Linux下恢复被误删文件的方法

是在网上找到你一个方法,具体还没试用,改天有时间试用一下恢复被误删文件的方法大多数Linux发行版都提供一个debugfs工具,可以用来对Ext3文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)mount -r -n -o remount /usr-r表示只读方式挂载;-n表示不写入/etc/mta...

weixin_31283549的博客 680

linux进程调度(三)-进程终止

当进程退出的时候,根据父进程是否关注子进程退出事件,存在两种可能:第一种,父进程关注子进程的推出事件,那么进程退出时释放各种资源,只留下一个空的进程描述符,变成僵尸进程,发送信号 SIGCHLD通知父进程,父进程在查询进程终止的原因以后回收子进程的进程描述符。第二种,如果父进程不关注子进程退出事件,那么进程退出时释放各种资源,释放进程描述符,自动消失。进程的退出分两种情况:进程主动退出和被动退出。主动退出是指进程已经执行完毕,主动调用exit退出或者main函数执行完毕,编译器会总添加exit函数。

jianjian的博客 736

2022 最新 Linux 面试题

2022 最新 Linux 面试题 0. 文件权限修改用什么命令? 格式是怎么样的?格式如下:1 、 绝对路径用什么符号表示?当前目录 、 上层目录用什么表示?答案:2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?答案:3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当 前用户 id?查看指定帮助用什么命令?答案:4、Ls 命令执行什么功能? 可以带哪些参数,有什么区别?答案:5、建立软链接(快捷方式),以及硬链接的命令。答案:6、目录创建.

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 2348

Windows客户端桥接WSL2:命令执行、路径映射与文件预览实践

在Windows与WSL2组成的异构开发环境中,桌面客户端与Linux工具链之间并非简单适配问题,而是进程、路径、权限和文件系统事件四类模型存在边界。桥接层以常驻服务和协议转换客户端为核心:Linux侧负责命令执行与文件读取,保留退出码、统一UTF-8输出,并通过路径映射和服务端inotify监听把状态与变更可靠回传;Windows侧只做请求转发与渲染。其技术价值在于降低反复启动开销、避免退出码被吞和中文乱码,让文件预览、热重载与构建测试链路保持一致。该方案适用于Windows上以WSL为主力开发、希望桌面

weixin_33842304的博客 349

杂乱的Linux命令

1.解压和压缩的命令 解压缩的命令:tar -xzvf 要解压的文件名 压缩的命令:tar -czvf 压缩后的文件名 要压缩的文件 如何解压.zip压缩包? unzip filename.zip 如何解压.gz的压缩包? gunzip filename.gz gzip -d filename.gz 如何解压.bz2压缩包? 解压1:bzip2 -d FileName.bz2   解压2:bunzip2 FileName.bz2   压缩: bzip2 -z FileName 2.Linux中的一些特殊变量

超级酷乐猫的博客 2291

linux日志详解

Linux 日志详解 linux下登录日志在下面的目录里: cd /var/log 查看ssh用户的登录日志: less secure linux日志管理: 日志简介 日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。 在Linux系统中,有三个主要的日志子系统: 连接时间日志–由多个程序执行,把纪录写入到/var/log/wtmp和/var/

weixin_45883338的博客 2352
上一篇: 36 join和paste命令的几点总结
下一篇: 40 在Ubuntu下编写shell脚本流程简单说明
alloy
博客等级 码龄19年 15粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值