shell 参数换行 & shell 输出换行的方法_shell换行_Donald Su的博客-程序员秘密

技术标签: Shell  Linux  

1. shell 参数换行

Linux参数太长,一般可取续行符 "\"进行参数换行/续行。反斜杠\ 后面紧跟回车,表示下一行是当前行的续行.

如下的代码所示

python target_attack.py \
  --input_dir="${INPUT_DIR}" \
  --output_dir="${OUTPUT_DIR}" \
  --max_epsilon="${MAX_EPSILON}" \
  --checkpoint_path_adv_inception_v3=adv_inception_v3.ckpt \
  --checkpoint_path_ens3_adv_inception_v3=ens3_adv_inception_v3.ckpt \
  --checkpoint_path_ens4_adv_inception_v3=ens4_adv_inception_v3.ckpt \
  --checkpoint_path_ens_adv_inception_resnet_v2=ens_adv_inception_resnet_v2.ckpt \
  --checkpoint_path_adv_inception_resnet_v2=adv_inception_resnet_v2.ckpt \
  --iterations=11 \
  --prob=0.5

最近遇到一个坑,在\后面加上了空格,导致后面的参数不能进行结息。但是代码又比较考算力,跑了一个晚上的代码,后来发现参数没有赋值成功,发现赋值失败,有--prob=0.5: command not found 的提示字段。

后来一点点排查,才知道是\后面多了一个空格,但是在编辑器中看不出来任何差别。。。

【注意】
\后面紧接着是enter换行符,即使用\回车的方式,不能有空格之类的任何符号,否则会造成解析错误,导致后面的参数赋值不成功。

2. echo打印换行的方法

默认情况下,echo关闭了对转义字符的解释,添加 -e 参数可打开echo对转义字符的解释功能。-E关闭转义字符,是默认值。

echo -e "hello\n wrold" #换行输出 hello world
echo -E "hello\n wrold" #输出 hello\n world, 默认情况

【注意】

  1. 当前终端使用一次 echo -e后,echo对转义字符的解释功能打开,后续都转义字符都有效。

  2. 更推荐使用printf 命令进行输出,printf还支持格式化输出,和C语言中printf功能类似,示例代码如下:

    a=1231
    printf "%d - %d = $a\n" 12 123 #输出12 - 123 = 1231
    printf "%d - %d = $a\n\n" 12 123 #输出 12 - 123 = 1231 空白行
    

printf不会echo那样在一行结束自动添加换行符,连续多行使用printf时需要注意下。

printf命令语法printf format-string [arguments...], 参数之间用空格隔开,不能是逗号(和C语言中的区别)。

eg: printf("%d equal %d\n", $num1, $num2) 应该为 printf "%d equal %d\n" $num1 $num2

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

智能推荐

electron开发记录(三):应用基本框架解析_multiangle的博客-程序员秘密

这篇文章主要讲了electron应用的基本架构,并对之前下载的应用进行分析electron应用的基本架构在electron中,主要有两类进程。一类是主进程main,还有一类是渲染器进程renderer。主进程只有一个,负责对整个应用的管理,包括后台操作,创建GUI,以及处理GUI与后台的交互操作。但是光有主进程是无法显示应用窗口的,我们需要在主进程中调用BrowserWindow模块才能使用不同的窗

Android开发中使用SQLite数据库_SQLit_CHRobin的博客-程序员秘密

Android开发中使用SQLite数据库_SQLit   经过 getString(),getInt() 等办法失掉给订字段当后记录的值;   Android 集成了 SQLite 数据库  把数据库从设备上考出去,你能够运用 adb pull 命令(或许正在 IDE 上做相当操作)。存储一个修改正的数据库到设备上,运用 adb push 命令。

Vmware16搭建集群Linux_16台服务器集群搭建_Tsinghua University的博客-程序员秘密

1.注意事项1.1 windows系统确认所有的关于VmWare的服务都已经启动1.2 自定义VmWare网关地址注:第6步中的ip可以随意设置,这里只是例证1.3 确认VmNet8网卡已经配置好了IP地址和DNS2.下载vm虚拟机链接:https://pan.baidu.com/s/1u5jFqQum-wud52Wo3FRvjw 提取码:XWFN 2.1 将虚拟机文件夹复制三份,并分别重命名, 并使用VM打开重命名2.2分别设置三台虚拟机的内存注:.

DB-->Excel/Word[DLL]_weixin_33979203的博客-程序员秘密

使用vb 6.0+ADO 2.8写了一个把数据库中内容导出成Excel/word文档的DLL,使用tlbimp命令转换后也可以在vs 2003中使用[添加引用就可以了,上传的文件中DotNet.Report.dll,ADODB.dll就是.net版,另外几个是直接用vb生成的dll文件可在vb 6.0等开发平台下使用],功能比较简单只实现了把用sql语...

ubuntu14.04下载源码_松松在这里莫的博客-程序员秘密

本文主要介绍在Ubuntu 14.04环境下下载linux内核源码步骤

随便推点

SpringBoot+RabbitMQ实现邮箱服务_HouXinLin_CSDN的博客-程序员秘密

由于我有两个项目,每个项目都需要用到邮件,所以把邮件拆分出来做成了一个单独的邮件服务,也方便以后的项目直接调用。也就是现在有三个服务,服务A接收其他服务发送的消息,这个消息中会包含三个基本的信息,邮件标题、邮件内容、接收者的邮件号。服务B、C发送包含这三个信息的消息到服务A中,服务A拿到信息后最终发送邮件。一、安装RabbitMQ我的系统是Linux(Deepin),Windows的就不演示了,只需要以下三条命令。RabbitMq需要erlang语言的支持,在安装RabbitMq之前需要安装erl

嵌入式系统编程之软件架构_嵌入式软件架构 能把任务当作模块吗_mndscc的博客-程序员秘密

本文介绍了嵌入式系统编程软件架构方面的知识,主要包括模块划分、多任务还是单任务选取、单任务程序典型架构、中断服务程序、硬件驱动模块设计等,从宏观上给出了一个嵌入式系统软件所包含的主要元素。模块划分模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设

TDA4 Jacinto 7入门 | 01 Processor-SDK 开发环境配置_tda4vm sdk_happy_jordan1012的博客-程序员秘密

1.开发环境配置(1)工作机Ubuntu 18.04 64位 系统(不支持Ubuntu20)(2)下载Linux SDK 和 RTOS SDKhttps://www.ti.com/tool/PROCESSOR-SDK-J721Ehttps://www.ti.com/tool/PROCESSOR-SDK-J721ELinux:PROCESSOR-SDK-LINUX-RT-J721E — Linux-RT SDK for DRA829 & TDA4VM Jacinto Process.

Unity3D中Prefab_qq_657242618的博客-程序员秘密

Prefab概念:        Prefab是一种资源类型——存储在项目视图中的一种可反复使用的游戏对象。因而当游戏中须要非常多反复使用的对象、资源等时,Prefab就有了用武之地。它拥有下面特点:能够放到多个场景中。也能够在同一个场景中放置多次当加入一个Prefab到场景中,就创建了它的一个实例全部的Prefab实例链接到原始Prefab,本质上是原始Prefab的

学习日志————要点笔记————此文件为倒序_windows日志文件行倒叙显示_子知我非鱼的博客-程序员秘密

===========5.20===========一、面向接口的编程:连接数据库的接口,实现解耦一个接口,2个实现类,一个管理类,一个测试类二、关于返回值类型的训练三、集合1,集合框架(接口的继承关系以及实现类)2,集合的使用:存,取,判断3,集合的区别4,看视频,做练习===========5.19==

MYSQL的简单笔记_Splendid 、的博客-程序员秘密

DDL: 操作数据库、表1. 操作数据库:CRUD 1. C(Create):创建 * 创建数据库: * create database 数据库名称; * 创建数据库,判断不存在,再创建:有用***** * create database if not exists 数据库名称; * 创建数据库,并指定字符集 * create database 数据库名称 cha...

推荐文章

热门文章

相关标签