① shell脚本,重定向输出到文件,不换行
1、首先命令输出重定向的语法为:$ command > file,输出到显示器的内容就可以被重定向到文件。下面的命令在显示器上不会看到任何输出:$ who > users打开 users 文件,可以看到下面的内容。
② 在shell编程命令中,换行符号是什么
1、shell变量只是一个由名字表示的参数,或者是由名字表示的字符序列。例如定义变量a:a='a b'变量a代表字符串'a b';
' '表示换行,实质上是'反斜杠转义功能'是否启用下面列举三种使用方式,一种原样输出,另两种解析换行。
③ linux 查看文件时让其不自动换行
指令代码来:set nowrap
详解:我们自在linux服务起上多用vim查看文件,常有这行的情况,我们的解决办法有两个,即,
在编辑模式下 :set nowrap
修改配置文件~/.vimrc set nowrap
拓展:
syntax on " 自动语法高亮
"set number " 显示行号
"set cursorline " 突出显示当前行
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
④ LINUX删掉换行符
去掉文件中的换行符
(1)tr命令的操作是针对文件的操作,它把整个文本当内做操作的对象容,所以可以直接去除文件中的换行符
tr '\n' ' ' < file
(2)sed的操作对象是行.而作为行分割符号的回车符,本身是不属于行的.所以sed中必须加上N命令,把下一行的内容添加到当前的pattern space中,这样实际上是把相邻的2行合并了.下一次仍然是先n,再p,再N,开始新的轮回:
cat file | sed 'N;s/\n/ /'
所以上面的语句是不能把文件内容合并为一行的,到底该怎么写,我暂时没有想到,呵呵
(3)直接用awk
awk '{printf("%s ",$0)}' file
(4)当然,用echo也是可以的:
while read line;do echo -n "$line"; done < awk_help.txt, 这样,可以把awk_help.txt的内容合并为一行
sed -e "s#\[/r][/r][/n]#\[/r][/n]#g" file
Linux系统shell工具打印输出
shell脚本都是以#!/bin/bash开头;这是固定的写法,其中/bin/bash是bash命令的路径。那么Linux系统shell工具如何打印输出呢?跟我一起来看看吧!
一般都会通过chmod授予shell脚本的可执行权限。
在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。
在shell中如果用双引号("")作为打印输出的内容时,如果双引号中有特殊字符需要在特殊字符前加上转义字符,当然也可以使用单引号或者不使用引号直接输出,使用单引号或者不使用就不需要用到转义字符。
格式替代符
有一些常用的格式替代符会经常在打印输出中被用到,格式替代符只能用在printf输出中。
%-5s:表示5个字符宽度,其中的-表示左对齐
%-4.2f:其中的f表示浮点型,4.2代表长度为4个字符且小数点2位,如果小数点超过2会进行四舍五入,-表示左对齐。
整形:
%d:整数的参数会被转成一有符号的十进制数字
%u:整数的参数会被转成一无符号的十进制数字
%o:整数的参数会被转成一无符号的八进制数字
%x:整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示
%X:整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示
浮点型数:
%fdouble型的参数会被转成十进制数字,默认取小数点以下六位,四舍五入
%edouble型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示.
%E与%e作用相同,唯一区别是指数部分将以大写的'E来表示.
%gdouble型的参数会自动选择以%f或%e的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定.
%G与%g作用相同,唯一区别在以指数形态打印时会选择%E格式.
字符及字符串:
%c读字符串的第一个字符
%s输出指定宽度的字符内容.
%p如果是参数是"void*"型指针则使用十六进制格式显示
打印输出
在写脚本的时候更多的会使用echo作为打印输出,且习惯性的会使用双引号。
echo
[root@localhosttmp]#echo"helloword"
helloword
printf
默认printf是不换行的
[root@localhosttmp]#printf"helloword"
helloword[root@localhosttmp]#
需要换行加上 参数
[root@localhosttmp]#printf"helloword "
helloword
[root@localhosttmp]#
编写shell脚本
vimscrip.sh
#!/bin/bash
printf"%-5s%-10s%-4s "NoNameMark;
printf"%-5s%-10s%-4.2f "1aaa10.111;
printf"%-5s%-10s%-4.2f "2bbb20.146;
授予脚本执行权限:chmo+xscrip.sh
如果使用echo就不能用格式替代符
#!/bin/bash
echoNoNameMark;
echo1aaa10.111;
echo2bbb20.146;
注意事项
在echo,printf中使用-e,-n参数时,-e,-n应该出现在命令行其它字符之前。
-e:如果要在echo的双引号使用转义序列作为参数得需要使用-e参数
-n:忽略末尾的换行符
不使用-e参数
[root@localhosttmp]#echo"1 2"
1 2
使用-e参数
[root@localhosttmp]#echo-e"1 2"
转义序列:
/n:换行
/t:tab键
彩色输出
字体颜色包括:0=重置,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色
背景颜色包括:0=重置,40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色
echo-e"e[1;32mhelloworde[0m"
e[1;32m:将字体颜色设为绿色,e[0m:将颜色重置
;⑥ Linux Shell命令换行问题
xxxxxxx \
xxxxxxxx
或者 xxxxxxx ; xxxxxxx ;xxxxxxx
\ 后面回车不会马上执行本条命令而是换行继续。; 是运行完前面就继续后面的,同回样 && 是前面正确就运行后面,|答| 是前面运行不正确就运行后面。
放弃上一行好像不行。反正我是不会……
命令行里面 ^C 就到下一行了上面那行不会被执行。如果你是在文本编辑器里面写程序,放弃本行可以看当前文本编辑器的操作手册,有删除本行的快捷键。
我觉得你这个“代码”绝对是用错词了。应该是“命令”。
⑦ Linux shell 如何删除文本中最后一行末尾的换行符并输出为一个新的文本
你知道Linux的换行符是什么就行了
sed应当可以 直接替换最后一行的\n
⑧ linux shell脚本换行问题
不是换行,而是续行,就是说一行写不下了,下一行继续,而不是一个命令的结束
你说报java: command not found,跟没有关系,错误的原因:
你没有装java
path没有设对,echo $PATH看一下java的执行文件在不在其中的一个目录,没有,加之