① 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的執行文件在不在其中的一個目錄,沒有,加之