【shell编程】shell脚本换行问题_shell 换行-程序员宅基地

技术标签: 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

智能推荐

[RK3399][Android7.1] 调试笔记 --- 调换dsi和dsi1两路通道数据_rk3399 dsi1-程序员宅基地

文章浏览阅读3.5k次,点赞4次,收藏6次。Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:此问题是网友Brian遇到的,需求如下:点一个2560*1600的mipi屏,用的dsi和dsi1,这个屏有8 lane,有两个TCON IC,相当于两个屏了,一组DSI对应一个TCON,现在图像左右反了,所以想左右对调下。相当于用的是dual-channel具体配置可参考rk文档。..._rk3399 dsi1

ARCore快速入门--简介_arcore官网-程序员宅基地

文章浏览阅读1.5w次,点赞6次,收藏25次。简介ARCore 是一套用来创建AR(augmented reality) App的SDK。 官方网站是https://developers.google.com/ar/develop/。它可以在现下多种流行开发平台中使用. 它本身封装了一套本地API,通过它可以实现一些最基础的AR效果:比如 手势监听、世界的定义、灯光识别 等 通俗来讲就是在用户视觉(主要是Camera)的基础上,覆..._arcore官网

基于Redis的Bloomfilter去重(附Python代码)_python redis bloom-filter-程序员宅基地

文章浏览阅读2.7w次,点赞23次,收藏65次。前言:“去重”是日常工作中会经常用到的一项技能,在爬虫领域更是常用,并且规模一般都比较大。去重需要考虑两个点:去重的数据量、去重速度。为了保持较快的去重速度,一般选择在内存中进行去重。数据量不大时,可以直接放在内存里面进行去重,例如python可以使用set()进行去重。当去重数据需要持久化时可以使用redis的set数据结构。当数据量再大一点时,可以用不同的加密算法先将长字符串压缩成 16/_python redis bloom-filter

Android Studio中aidl文件生成java文件_.aidl文件怎么改成.java-程序员宅基地

文章浏览阅读1k次。1.在main文件夹下新建一个aidl文件夹2.在这个文件夹下创建你aidl文件所在包名,比如你原来有个ABC.aidl文件,所在包路径为:com.demo.demodemo,那么你就在main下的aidl文件夹下创建一个同样的包路径3.把你的ABC.aidl文件复制到刚才创建的文件夹下,然后重新编译即可._.aidl文件怎么改成.java

最简单直观的 IntelliJ IDEA包层级结构显示设置_idea怎样更直观的看pom层级配置-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏4次。 最近学习使用 IntelliJ IDEA,刚开始也是被包结构烦的吐血,网上很多教程都不够直观,决定来个直观的简单教程,个人还是喜欢第一种显示风格,第二种有时候看着感觉很累第一张设置显示风格,如图: 第二种设置显示风格: ..._idea怎样更直观的看pom层级配置

本地连接远程Spark(Python环境)_本地连接远程的spark-程序员宅基地

文章浏览阅读939次。版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013305783/article/details/85243187 </div> ..._本地连接远程的spark

随便推点

gitlab集成jira-相关配置_gitlab配置jira-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏3次。学习思路:gitlab基于docker安装 jira基于docker安装 gitlab配置jira-代码push后jira自动显示注释,Merged Master后自动修改jira状态一、基于docker安装gitlab1、镜像拉取#拉取最新的gitlab镜像docker pull gitlab/gitlab-ce当然还可以指定版本拉取docker pull gitlab/gitlab-ce:xxx2、运行容器docker run -d -p 8443:443 -_gitlab配置jira

将博客搬至CSDN-程序员宅基地

文章浏览阅读61次。将博客搬至CSDN

初等数论及其应用——唯一分解定理-程序员宅基地

文章浏览阅读135次。写在前面:开这个专栏之前其实是很纠结的,为了博客专栏的分类纠结了一会。这个专栏叫做“初等数论及其应用”,没有按照以前的习惯,用哪本教材命名,实际上我原本也是想结合华章译丛的《初等数论及其应用》,但是手头其实很多资料能说到数论(《训练指南》、《具体数学》等等),因此这里不用哪本书名命名了,而以这个分支的名字命名,专栏下的博客也以数论下的专题或者知识点为标题。这个专栏的作用,主要体现在对数论这个大..._初等分解定理

A/B test -- 判断(比例类)实验结果是否显著-程序员宅基地

文章浏览阅读5.9k次,点赞8次,收藏30次。震惊 AB显著性可以这样判断_是否显著

c++框架一 :tinyhttpd-程序员宅基地

文章浏览阅读441次。写代码从学习优秀的代码开始!开始学习c++的框架,从最小型的开始,tinyhttpd最适合不过了,总共500来行代码。从socket服务建立,到多线程和创建子进程,并在父子进程间通过管道通信,同时又可以了解http的一些基本原理,可以说非常适合学习。代码总体架构如下:代码阅读顺序(为方便阅读,只写关键代码)1、首先是main(),在main中调用startup()函数建立服务端监听,如果传参为0,则会自动选择一个可用端口,并用getsockname()获取服务信息,这里主要是获取监听的端

JPA常用注解_jpa @nullable-程序员宅基地

文章浏览阅读322次。【原文链接】http://blog.csdn.net/wanghuan203/article/details/8698102JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3._jpa @nullable