Linux-Unix-Shell实战实例

全面Linux与Unix Shell编程技术指南 本文还有配套的精品资源,点击获取 简介:本书提供了一个全面的指南,帮助读者深入理解和掌握在Linux和Unix操作系统中进行高效系统管理与自动化任务的Shell编程技术。涵盖了从基础到高级的主题,内容包括Shell编程基础、UNIX命令与工具、Shell函数与脚本设计、高级Shell编程技术以及UNIX文字处理与系统管理。它为Shell编程者和系统管理员提供了一个宝贵的资源... 阅读详情

Linux-Unix-Shell实战实例

                       

 

1 shell中如何判断一个变量是否为空

1. 变量通过" "引号引起来

       如下所示:,可以得到结果为 ISNULL.

#!/bin/sh

para1=

if [ ! -n "$para1" ]; then

  echo "IS NULL"

else

  echo "NOT NULL"

fi 

2. 直接通过变量判断

       如下所示:得到的结果为: ISNULL

#!/bin/sh

para1=

if [ ! $para1 ]; then

  echo "IS NULL"

else

  echo "NOT NULL"

fi 

3. 使用test判断

     得到的结果就是: dminis not set!  

#!/bin/sh

dmin=

if test -z "$dmin"

then

  echo "dmin is not set!"

else  

  echo "dmin is set !"

fi

 

4. 使用""判断

#!/bin/sh 

dmin=

if [ "$dmin" = "" ]

then

  echo "dmin is not set!"

else  

  echo "dmin is set !"

fi

 

2 Shell 参数打印和拼接

#!/bin/sh

NUMBER=$#

echo $NUMBER

i=1

while [ $i -le $NUMBER ]

do

a[$i]=$1 #将数组a[i]赋值为$1,即取得到第一个参数并将值存入a[1]

echo ${a[$i]}

((i++))#数组后移一位,变为a[2]

shift#使用shift命令将参数后移一位,即此时的$1为第二个参数,具体使用详见下面内容。

done

 

代码如下:

#!/bin/bash

count=$#

cmd=echo

while [ $count -gt 0 ]

do

        cmd="$cmd\$$count"

        count=`expr$count - 1`

done

eval $cmd

3 linux shell 各种比较运算符

x   sshell 编程中使用到得if语句内判断参数 

–b 当file存在并且是块文件时返回真
  -c 当file存在并且是字符文件时返回真
  -d 当pathname存在并且是一个目录时返回真
  -e 当pathname指定的文件或目录存在时返回真
  -f 当file存在并且是正规文件时返回真
  -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
  -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
  -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
  -p 当file存在并且是命令管道时返回为真
  -r 当由pathname指定的文件或目录存在并且可读时返回为真
  -s 当file存在文件大小大于0时返回真
  -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
  -w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
  -o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

  UNIX Shell 里面比较字符写法:
  -eq   等于
  -ne    不等于
  -gt    大于
  -lt    小于
  -le    小于等于
  -ge   大于等于
  -z    空串
  =    两个字符相等
  !=    两个字符不等
  -n    非空串
  -------------------------------------------------------------------------

  更为详细的说明:
  运算符                     描述                          示例
  文件比较运算符
  -e filename     如果 filename 存在,则为真            [-e /var/log/syslog ]
  -d filename     如果 filename 为目录,则为真          [-d /tmp/mydir ]
  -f filename     如果 filename 为常规文件,则为真      [-f /usr/bin/grep ]
  -L filename     如果 filename 为符号链接,则为真      [-L /usr/bin/grep ]
  -r filename     如果 filename 可读,则为真            [-r /var/log/syslog ]
  -w filename     如果 filename 可写,则为真            [-w /var/mytmp.txt ]
  -x filename     如果 filename 可执行,则为真          [-L /usr/bin/grep ]

  filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [/tmp/install/etc/services -nt /etc/services ]
  filename1 -ot filename2   如果 filename1 比 filename2 旧,则为真  [/boot/bzImage -ot arch/i386/boot/bzImage ]


字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法)
-zstring                  如果 string 长度为零,则为真               [-z $myvar ]
-nstring                      如果 string 长度非零,则为真        [-n $myvar ]
string1 = string2        如果 string1 与 string2 相同,则为真     [$myvar = one two three ]
string1 != string2       如果 string1 与 string2 不同,则为真     [$myvar != one two three ]

算术比较运算符

num1 -eqnum2              等于         [3 -eq $mynum ]
num1 -nenum2              不等于       [3 -ne $mynum ]
num1 -ltnum2               小于        [3 -lt $mynum ]
num1 -lenum2            小于或等于     [3 -le $mynum ]
num1 -gtnum2             大于          [3 -gt $mynum ]
num1 -genum2             大于或等于    [3 -ge $mynum ]

 

4 shell 整型变量自增(加1)的几种方法

#!/bin/sh
a=1
a=$(($a+1))
a=$[$a+1]
a=`expr $a + 1`
let a++
let a+=1

((a++))
echo $a

 

5 LINUX Shell:ping所有主机的shell脚本

#从/etc/hosts文件中找出主机信息,过滤后剩下IP项,再ping该主机.
cat /etc/hosts | grep -v ^# |grep -v ^$ | while read LINE
do
   for M in `awk '{print $1}'`
    do
      ping -c1 $M
   done
done
注释:
cat file是显示文件.
grep是文本过滤,-v选项是显示不包含匹配文本的行,^#表示以#开头的行.
grep -v ^# 表示不显示以#开头的行.
grep -v ^$ 表示不显示空行.
通过管道(|)的方式把前者的输出作为后者的输入.
并用while读取只有IP的文本的每一行.
用awk命令来输出该IP串.注意,`awk '{print $1}'`里,外面是用反引号引起来的,里面的是单引号.要区分开来,反引号表明这是一个命令.而单引号是awk要求的.
再用for来遍历每行IP串,在for里进行ping主机.用了-c选项,这样可以在ping了c选项指定的次数后退出ping命令.否则会一直ping下去的 

 

6 Shell比较两个日期的大小

#!/bin/bash

 

date1="2008-4-09 12:00:00"

date2="2008-4-10 15:00:00"

 

t1=`date -d "$date1" +%s`

t2=`date -d "$date2" +%s`

 

if [ $t1 -gt $t2 ]; then

    echo "$date1 >$date2"

elif [ $t1 -eq $t2 ]; then

    echo "$date1 ==$date2"

else

    echo "$date1 <$date2"

fi

应用场景:用于时间限制(00:00:00-01:15:00)

var=`date "+%H:%M:%S"`

t1=`date -d "$var" +%s`

date1="00:00:00"

t2=`date -d "$date1" +%s`

date2="01:15:00"

t3=`date -d "$date2" +%s`

if [ $t1 -ge $t2 ] && [ $t1 -le$t3 ];then

    echo "TIME:"$var

    echo "return 1"

    exit 1

else

    echo "TIME:"$var

    echo "return 0"

    exit 0

fi


 

7 删除目录下指定文件的shell脚本语句

find . -name "[LTE,master]*"-print

find /rtap/rtap/apps/rtap_file/data/ -typef -name "[LTE,master]*" -print 

find /rtap/rtap/apps/rtap_file/data/ -typef -name "[LTE,master]*" -exec ls -lrt {} \; 

find /rtap/rtap/apps/rtap_file/data/ -typef -name "[LTE,master]*" -exec ls -lrt {} \;|wc -l

find /rtap/rtap/apps/rtap_file/data/ -mtime1 -type f -name "[LTE,master]*" -exec ls -lrt {} \;|wc -l

注:[LTE,master]*表示以LTE和master开头的文件

 

实例:清理3小时前的文件脚本:

var=`date -d "3 hour ago"+"%Y-%m-%d %H:%M:%S"`

result=`find/rtap/rtap/apps/rtap_file/data/ -mmin +180 -type f -name"[LTE,master]*" -exec ls -lrt {} \;|wc -l`

count=$result

echo "当前目录:/rtap/rtap/apps/rtap_file/data/"

echo "3小时前:"$var"文件列表数:"$result

if [ $count -gt 0 ];then

   echo "文件列表如下:"

   find/rtap/rtap/apps/rtap_file/data/ -mmin +180 -type f -name"[LTE,master]*" -exec ls -lrt {} \;

else

   echo "文件列表为空!"

fi

echo "开始清理昨日文件!"

find /rtap/rtap/apps/rtap_file/data/ -mmin+180 -type f -name "[LTE,master]*" | xargs rm -rf

result=`find/rtap/rtap/apps/rtap_file/data/ -mmin +180 -type f -name"[LTE,master]*" -exec ls -lrt {} \;|wc -l`

if [ $result -lt 10 ];then

   echo "清理昨日文件结束!"

   exit 0

else

   echo "清理昨日文件失败!"

   exit 1

fi 

 

8 Shell中使用awk过滤进程

定位包含rtap1关键字进程的pid 和ppid然后执行kill命令杀死进程

ps -ef|grep"rtap1"|grep -v "grep"|awk '{print $2,$3}' |xargs kill-9 

定位进程名包含msgPrep关键字的进程并打印出所有进程信息

ps -ef|grep"msgPrep"|grep -v "grep"|grep -v "/bin/bash"|awk'BEGIN {while (getline) print $0}'   //按行打印信息

定位包含msgPrep关键字的进程的个数

ps -ef|grep"msgPrep"|grep -v "grep"|grep -v "/bin/bash"|awk'{print $2}'|wc -l

Linux与Unix Shell编程从入门到实战完整指南 Shell 脚本中的变量本质上是命名的数据引用,其生命周期和可见范围由作用域规则决定。理解变量的作用域不仅有助于避免命名冲突,还能有效控制数据封装性,尤其是在复杂脚本或函数调用链中尤为重要。操作系统在用户登录时会自动设置一系列标准环境变量,以下是几个最关键的预定义变量及其用途:变量名默认值示例功能说明PATH指定命令搜索路径,决定哪些目录下的可执行文件可以直接调用HOME用户主目录路径,常用于配置文件存储SHELL/bin/bash当前用户的默认Shell解释器。 阅读详情

相关推荐

《LINUX与UNIX SHELL编程指南》读书笔记及实践

Linux与UNIX操作系统作为现代计算的基石,拥有悠久而光辉的历史,为许多现代操作系统提供了设计理念和技术基础。本章将带领读者深入探讨Linux与UNIX的世界,从它们的历史沿革开始,逐步解析其系统架构,最后介绍主流的发行版及其版本特性,为后续章节的Shell编程和系统管理打下坚实的基础。Shell编程是Linux与UNIX系统中重要的自动化和任务调度工具。掌握Shell编程能够极大提高工作效率,并且对于系统管理以及应用部署都具有不可替代的作用。

weixin_42584758的博客 1135

燕山大学Linux实验shell程序设计

这个题目考察的就是一个数组的使用。这个问题就是也是同样的道理先利用位置参数得到目录然后通过cd命令先转移到所在的目录然后也是shift命令移动一位利用for循环进行一个遍历在遍历的过程中进行pr命令打印。这个核心就是一个判断语句,进行输入一个年份然后进行判断,只要它是4的倍数并且不是100的倍数或者是400的倍数即可判断是闰年,这里-a相当于&&-o相当于||。这个题目主要是对执行的位置参数进行的一个操作,将位置参数从0到9进行输出同时也有shift命令,移动1位和移动4位的移动后的显示但是。

m0_53345417的博客 1595

LINUX与UNIX Shell编程指南2:进阶实践与技巧

本文还有配套的精品资源,点击获取 简介:Linux和Unix操作系统是IT行业的基础工具,Shell编程是与这些系统交互的关键技术。《LINUX与UNIX Shell编程指南2》为想要提高在Linux或Unix环境下工作效率的读者提供了深入学习的机会。本指南涵盖了Shell编程的基础知识,包括Shell的基本概念、变量、控制结构、函数、脚本编写、命令行参数处理、文件与目录操...

weixin_31720909的博客 780

2021-06-28

Linux 常用指令 简单指令 who who i am echo ‘hello world’ date cal 2021 cal 7 2021 clear passwd 文件操作命令 文件显示 cat a.java 匹配命令 grep heng /etc/passwd #在/etc/passwd中查找包含heng的所有行 find . -name “*.py” #在当前目录下查找所有以.py结尾的文件 find 复制、删除和移动文件的命令 cp a.java /home/heng/ja

hengpro的博客 894

Shell编程实战指南:Linux和UNIX系统自动化

本文还有配套的精品资源,点击获取 简介:Shell编程是利用Shell命令编写脚本,实现自动化任务处理和系统管理的有效手段。本指南将深入探讨Linux和Unix系统中的Shell编程,涵盖Shell类型、脚本编写、变量和参数、函数、系统命令调用、管道和重定向、错误处理和调试技巧等关键知识点。通过实践任务和代码示例,你将掌握Shell编程的实战技能,提升系统管理和自动化任务处...

weixin_28235889的博客 725

Linux与Unix下的Shell编程进阶指南

Linux和Unix都秉承了多用户、多任务的哲学思想。它们诞生于计算机发展的初期,当时系统资源宝贵,性能是设计的首要考量。Unix操作系统在1969年由AT&T的贝尔实验室开发,它的设计目标是创建一个简单、高效、强大的系统,能够支持多任务和多用户环境。Linux的历史则开始于1991年,由Linus Torvalds主导开发,它在Unix的基础上发展起来,并且遵循开源哲学,即源代码对所有人公开,任何人都可以自由地使用、修改和分发。在Shell脚本中,变量是一个非常重要的概念。

weixin_42576186的博客 1128

linux 脚本中 -le,linux shell中if的各种判断

shell编程中使用到得if语句内判断参数–b当file存在并且是块文件时返回真-c当file存在并且是字符文件时返回真-d当pathname存在并且是一个目录时返回真-e当pathname指定的文件或目录存在时返回真-f当file存在并且是正规文件时返回真-g当由pathname指定的文件或目录存在并且设置了SGID位时返回为真-h当file存在并且是符号链接文件时返回真,该选项在一些老系统上无...

weixin_42411003的博客 2817

Python自动化办公:5分钟搞定钉钉群文件自动发送(附完整代码)

本文详细介绍了如何利用Python实现钉钉群文件的自动化发送。通过结合钉钉企业内部应用与群机器人API,构建了包含智能令牌管理、文件上传与消息发送的完整工作流。文章提供了可直接复用的完整代码,并分享了定时任务、目录监听等进阶实战方案,帮助职场人士高效解决重复性文件发送难题,实现办公自动化。

7z8x2c4v6b9的博客 321

SpringCloud启动脚本详解,Linux中nohup与&详解

文章目录1 nohup1.1 知识理解1.2 案例1.2.1 案例一1.2.2 案例二2 nohup和&的区别2.1 没有nohup2.2 使用nohup2.3 使用nohup和& 1 nohup 1.1 知识理解 nohup命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。 在注销后使用nohup命令运行后台中的程序。要运行后台中的n...

上善若泪 1814

【原创】SAP/Oracle 集团企业海外全球化实施注意事项: 一带一路本地化 (持续更新)...

ABC集团SAP的系统平台已经扩展到全球一百来个国家和地区,SAP系统平台的全球实施项目中, 当时是需要支持当地的业务和法律法规的合规要求。   当时客户也是缺乏当地的资源以及对当地法律法规和业务实践的了解,需要团队提供了全球化的支持,通过我们全球产品技术专家充分传递了各区域的本地化支持和实践 而且近年来我们发现一些国家和政府,陆续都在推出一些新的税改和合规的要求,接下来基于这些要求,我们全球...

weixin_34024034的博客 1143

Windows Server双机热备实战:用IIS+ARR+NLB搭建高可用Web服务(附避坑指南)

本文详细介绍了在Windows Server环境下,利用IIS、ARR(Application Request Routing)和NLB(Network Load Balancing)构建高可用Web服务的实战方案。通过双机热备架构,实现从网络层到应用层的全面冗余与智能流量分发,并提供了关键的配置步骤、常见避坑指南及性能调优建议,确保企业级Web服务的连续性与可靠性。

weixin_29210759的博客 382

shell脚本实战教程

shell脚本实战教程

程序员码小跳 6751

多智能体系统在军事仿真中的应用:AI人工智能战略推演

本文旨在全面解析多智能体系统在军事仿真领域的应用技术,重点探讨AI驱动的战略推演系统的设计原理和实现方法。研究范围涵盖从基础理论到实际应用的完整技术栈。本文采用从理论到实践的递进结构,首先介绍核心概念,然后深入算法实现,最后展示实际应用案例和未来展望。多智能体系统(MAS):由多个相互作用的智能体组成的分布式系统军事仿真(Military Simulation):通过计算机模拟军事行动和战争场景战略推演(Strategic Wargaming):通过模拟推演评估军事战略的有效性更高保真度的仿真。

AI天才研究院 1776

[Shell] [笔记]UNIX/Linux/OSX中的Shell编程

UNIX/Linux/OSX中的Shell编程(第4版) Stephen G. Kochan Patrick Wood著 文章目录UNIX/Linux/OSX中的Shell编程(第4版)基础1. 使用文件2. 使用目录3. 文件名替换*? 或 [][!chars]4. 文件名中的空格5. 标准输入/输出和I/O重定向6. 标准错误7. 管道8. Shell9. 正则表达式10. 常用字符的八进制...

Blanchedingding的博客 2475

Cadence OrCAD Capture软件启动过程卡死且无法恢复的解决方法

如下图所示Cadence OrCAD Capture软件在启动后出现卡死的现象,且等待后无法自动恢复,需要强行关闭,再次启动依然卡死。

fydar的博客 4042

关于 SAP Fiori Elements 开发项目里的本地 annotation.xml 文件

文件通过引用 SAP 提供的标准词汇表和本地 OData 服务的元数据,为 Fiori Elements 应用定义了一个基础的注解结构。开发者可以在此基础上添加具体的注解,以满足特定的业务需求和界面定制。文件用于定义本地注解,以补充或覆盖来自后端 OData 服务的元数据。元素内添加具体的注解,以定制 Fiori Elements 应用的界面和行为。的架构,用于在本地注解中定义实体、类型和注解。这使得在本地注解中可以引用该 OData 服务的实体和类型。等,用于控制界面元素的显示和行为。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 470

Linux shell学习之:unix/linux shell的发展历程

Linux shell学习之:unix/linux shell的发展历程 2009-10-23 13:44 佚名 linux 本文给大家讲解了linux Shell中的Bourne shell (bsh)、Bourne Again shell ( bash)、C Shell、TC Shell(tesh)等Shell程序的概念。 AD: 学习linux Shell脚本编程时

苏嵌——杭天龙 751

有道龙虾LobsterAI vs. OpenClaw:对比与安装部署攻略

LobsterAI是"中国版OpenClaw",更注重易用性和中文场景适配;OpenClaw是技术极客的玩具,需要大量命令行操作。

lpfasd123的博客 2393

无涯教程-Linux - Unix - What is Shell?函数

该Shell为您提供了UNIX系统的接口。它收集您的输入,并根据该输入执行程序。程序完成执行后,将显示该程序的输出。Shell是一个环境,我们可以在其中运行命令,程序和Shell脚本。Shell的样式不同,就像操作系统的样式不同。每种Shell程序都有其自己的一组公认的命令和功能。

无涯教程 983

Python爬虫实战:抓取CVE安全漏洞数据库

在网络安全领域,CVE(Common Vulnerabilities and Exposures)是一个非常重要的安全漏洞字典,它为每个安全漏洞提供了唯一的标识符。安全研究人员、开发人员和系统管理员都需要及时了解最新的CVE信息,以便采取相应的防护措施。本文将详细介绍如何使用Python爬虫技术从专业CVE网站抓取漏洞数据,并构建一个完整的CVE信息采集系统。本文详细介绍了如何使用Python爬虫技术从专业CVE网站抓取安全漏洞数据。多种爬虫技术反爬虫策略:User-Agent轮换、代理IP、请求延迟。

2201_76125261的博客 367

数学建模模型总结

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

从入门到精通:UNIX shell程序超详细攻略

本文系统介绍了UNIX Shell编程的基础知识和实用技巧。主要内容包括:Shell的基本概念与作用,环境准备和脚本格式;语法基础如变量、运算符、流程控制和函数;实战案例涵盖文件处理、系统监控和数据备份等场景;进阶技巧包括调试方法、性能优化和代码规范。文章通过大量示例演示了Shell脚本在不同场景下的应用,强调了其在自动化运维中的重要性。最后鼓励读者继续深入学习,探索Shell更强大的功能。

大雨淅淅的博客 1239

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版

绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 去发现同类优质开源项目:https://gitcode.com/ 本书是绝版经典教材,全面深入地讲解了LINUX与UNIX SHELL编程的相关知识。适合希望掌握SHELL编程技巧的系统管理人员和编程爱好者阅读。 资源简介 shell作为一种完整的编程语言,以其易学易用的特性受到广大程序员的喜爱。通过shell脚本,可以实现手工作...

gitblog_06708的博客 368

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

linux shell编程总结

    本周学习了unix/linux shell编程,参考的是《LINUX与UNIX Shell 编程指南》,David Tansley著;徐焱,张春萌等译,由机械工业出版社出版的了,往内页那么一翻,都是2000年3月译的了,原书估计会更老,不过图书馆能找到合适于我这种初学者的也许就这么本了,将就着的吧。    这本书是以Bourne shell这个UNIX系统都支持的标准shell。Bou

ltbook的专栏 4557

linux与unix区别

UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。 现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大的差异,从表面上甚至看不出两者的关联。 UNIX 的坎坷历史

manongxianfeng的博客 7468

Linux是什么,有哪些特点?Linux和UNIX的关系及区别(详解版)

Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。说模仿可能会被人喷,你也可以说微创新或者改进。相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。

weixin_42673574的博客 3039

Linux编码及dos2unix,unix2dos命令

通常我们在执行shell脚本的时候会遇到类似下面的错误,而事实上脚本没有任何问题,很多人会卡在这一步很久,其实有可能是编码导致的回车符不一致引起的

王义凯 的博客 3426
上一篇: Linux-Unix系统操作与维护常用命令
下一篇: Gcc 编译与安装
romaticjun2011
博客等级 码龄15年 6粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值