【shell编程】shell脚本换行问题_shell 换行_flyflyflya的博客-程序员秘密

技术标签: linux  bash  

在shell编程中遇到一些需要换行的情况,在这里记录一下,后续还有

1-脚本代码太长需要换行

这个情况是指我们某一些代码,或者指令需要输入的参数太多太长,不易于阅读与维护

在结尾加上\即可

# 之前的代码(现实生活中不会这么用,这里是举个例子假设有个长命令)
ls -ll /home && cd shell && ls -ll

# 之后的代码 (得到的结果一样)
ls -ll /home && \
cd shell && \
ls -ll #最后一行不要\了

需要注意

  1. 每个换行\后面不能有空格,必须直接跟回车。
  2. 最后一行参数不要有换行符。

2-echo输出给用户看的命令太长需要换行

需要输出的结果太长了,需要换行显示更加美观

加参数 -e 使用换行符\n

echo "这句话真的太长了,怎么显示成2行呢?这样就可以啦"
这句话真的太长了,怎么显示成2行呢?这样就可以啦
echo -e "这句话真的太长了,怎么显示成2行呢?\n这样就可以啦"
这句话真的太长了,怎么显示成2行呢?
这样就可以啦

3-read -p提取用户输入的时候提示太长需要换行

read -p 一般需要加一段提示语来提示用户,有时候这个提示语太长了不好看,并且希望让用户输入的命令也另起一行,这样更加直观 需要做如下操作

加$ 表示解析所有字符(因为\默认是转义的,加了$就不转了)

在需要换行的地方增加 \x0a

# 之前的代码
read -p '请选择需要进行的运算:(1-加法 2-减法 3-乘法 4-除法)' rule
# 输出的结果如下,并且不会另起一行给用户来输入
请选择需要进行的运算:(1-加法 2-减法 3-乘法 4-除法)

# 之后的代码
read -p $'请选择需要进行的运算:\x0a (1-加法 2-减法 3-乘法 4-除法) \x0a' rule

# 输出的结果如下,用户需要在第三行输入命令
请选择需要进行的运算:
(1-加法 2-减法 3-乘法 4-除法)

或者下面的方法

#!/bin/bash
read -p "Please enter a message : `echo $'\n > '`" message

# 这样会另起一行并且增加> 提示符让用户输入
Please enter a message :
 >

参考文档:

shell之输出换行_happytree001的博客-程序员秘密_shell输出换行shell输出控制换行https://blog.csdn.net/happytree001/article/details/120774621shell 参数换行 & shell 输出换行的方法_Donald Su的博客-程序员秘密_shell 换行1. shell 参数换行Linux参数太长,一般可取续行符 "\"进行参数换行/续行。反斜杠\ 后面紧跟回车,表示下一行是当前行的续行.如下的代码所示python target_attack.py \ --input_dir="${INPUT_DIR}" \ --output_dir="${OUTPUT_DIR}" \ --max_epsilon="${MAX_EPSILON}...https://blog.csdn.net/donaldsy/article/details/99938408如何为read命令添加换行符? - 主函数编程网http://main.net.cn/faq/test-maintain/shell/how-do-i-add-a-line-break-for-read-command/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/flyflyflya/article/details/124546881

智能推荐

JavaScript——事件_MrXiec的博客-程序员秘密

事件的概念事件源事件名事件注册事件处理以火灾为例:XX大酒店201房间发生火灾,打119电话报警,xxx消防大队出警赶到现场通过喷水作业成功灭火事件源:XX大酒店201房间事件名:火灾事件注册:规划片区,由xxx消防大队负责事件处理:喷水常用事件鼠标常用事件(1) 单价事件onclick在这个案例中,事件源是id‘为“p1”的元素,事件名是单击事件注册οnclick=“fun()”,也就是说,当单击id为“p1”的元素时,交给fun函数来处理。(2) 双击事件:ondb

oracle数据多库联合查询_FANGJIANQIN的博客-程序员秘密

如果系统中涉及到一条SQL语句需要跨越两个数据库查询,那么该SQL语句如何编写呢?见下面DEMO:1、首先在主库中需要设定DataBase links,具体设定方法网上五花八门的,此处不做介绍 (可通过plsql等工具,也可通过相关命令行实现)2、具体SQL语句DEMO: select a.account_id, a.account_name, e.facility_i...

Linux 下修改socket接收缓冲区_乌托的博客-程序员秘密

在进行socket编程有时候可能需要修改下socket的接收缓冲区大小,这里可以使用 setsockopt 函数,但是如果需要修改的缓冲区很大(比如500MB),则还需要修改系统内核的TCP/IP参数,不然接收缓冲区大小会收到内核参数的限制,所以需要改两个地方。下面以把socket接收缓冲区修改为500MB说明一下要作的修改。1、修改内核TCP/IP参数在终端用sysctl命令修改socket最大缓

C++中输入输出的重定向_awyo96572的博客-程序员秘密

C++中输入输出的重定向 重定向,就是:把 原来的 cin 从键盘输入 改为从文件输入。把 原来的 cout 向屏幕输出 改为输出到文件。例如: cin>>line; 原来要从键盘拍入。现在自动到某文件读取,语句还是 cin>>l...

【高等数学笔记】变限积分求导问题_seh_sjlj的博客-程序员秘密

首先我们祭出最强大的武器——定义:定义 如果在区间III上,F′(x)=f(x)F'(x)=f(x)F′(x)=f(x),则称FFF是fff在III上的一个原函数。定理(Newton-Leibniz公式) 设f∈R[a,b]f \in \mathcal{R}[a,b]f∈R[a,b],且fff在区间[a,b][a,b][a,b]上有一个原函数FFF,则∫abf(x)dx=F(b)−F(a)\int_{a}^{b}f(x)\text{d}x=F(b)-F(a)∫ab​f(x)dx=F(b)−F(a)。

随便推点

用TP框架完成最基本的登录验证思路_Fadeaway席八农的博客-程序员秘密

首先用D方法实例化一个$user模型类,该模型的功能是连接数据库并且执行User模型里面的一些操作数据库方法。            $user=D('User');            接着就是把从表单获取来用户名与数据库进行比对,调用User模型里面的checkNamePwd($username,$password)方法。            $result=$user->ch

太空帝国5(Space Empires V SE5)攻略_系统信息的博客-程序员秘密

如果您喜欢这些文章,欢迎点击此处订阅本Blog<!-- google_ad_client = "pub-7343546549496470";/* 728x90, 大横幅正文上方 */google_ad_slot = "4725362798";google_ad_width = 728;google_ad_height

如何查服务器运行内存条,怎么查看服务器的cpu和内存的硬件信息_萧遥逸的博客-程序员秘密

可以按照如下方式进行操作:一、查看cpu总个数方法:1、首先执行top命令,如下图中内容所表示。2、在top命令的显示界面,按数字键1,即可查看到当前系统中的总cpu数,如下图中内容所表示。二、查看总内存的方法:1、free命令主要用于显示内存数量,如下图中内容所表示。2、一般使用free命令的-h参数,更人性化的显示,如下图中内容所表示。扩展资料linux通用命令:1、date :print o...

数据库基础知识_孙中明的博客-程序员秘密

1-数据库基础基本概念2-准备数据导入数据库使用数据库和表3-常用语法SELECT语句排序检索最高值使用WHERE过滤数据数据过滤用通配符进行过滤4-使用正则表达式基本字符匹配进行OR匹配匹配几个字符之一匹配范围匹配特殊字符~~匹配字符类~~匹配多个实例定位符5-创建计算字段计算字段拼接字段使用别名执行算术计算6-使用数据处理函数文本处理函数日期和时间处理函数MySQL使用的日期格式数值处理函数7-聚合数据8-分组数据创建分组过滤分组分组和排序SELECT子句顺序9-使用子查询作为计算字段使用子查询11-组

关于强制转换操作符reinterpret_cast的实验和总结_"replace \"reinterpret_cast\" with a safer cast."_灯下笛声的博客-程序员秘密

强制转换操作符reinterpret_cast是一个非常有趣的操作符。我们常见的强制转换操作符static_cast在强制转换的时候是有一些限制的。例如,我们不能把int这样的系统内置类型转换成char*这样的指针类型,不能进行像int*和char*这样的指针类型之间的转换。但是reinterpret_cast却没有这方面的限制。它似乎是无所无能的,虽然我没有把所有的可能性都实验一遍,但是上述的两

day1_jmeter操作mysql步骤_weixin_30920853的博客-程序员秘密

在测试计划页面首先添加,点击浏览按钮找到jar包,打开即可,通过jar包连接mysql数据库右键线程组添加-&gt;配置原件-&gt;JDBC Connection Configuration,在Variable Name文本框里输入一个变量名,其余的按图中填写,Database URL那要包含连接的服务器IP、端口和数据库,也可以在数据库后面输入useUnicode=true&amp;cha...

推荐文章

热门文章

相关标签