shell中的輸入輸出
標准輸入:鍵盤
標准輸出:終端顯示器
>> 追加是換行追加的
echo
-n 不尾隨換行符
-e 啟用解釋反斜槓的轉義功能
-E 禁用解釋反斜槓的轉義功能(默認)
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
只用cat
cat<filename1>filename2
內聯輸入重定向
command<<EOF(標識符)
data
EOF (標識符)
在腳本中重定向輸入輸出
臨時重定向
永久重定向
1.臨時重定向
command>&文件描述符
[root@localhost110 ~]# cat h.sh
#! /bin/bash
echo 'test error' >&2
echo 'normal output'
[root@localhost110 ~]# chmod u+x h.sh
[root@localhost110 ~]# ./h.sh
test error
normal output
[root@localhost110 ~]# ./h.sh 2>errlog
normal output
[root@localhost110 ~]# cat errlog
test error
2、永久重定向
exec 文件描述符>文件名
[root@localhost110 ~]# cat h.sh
#! /bin/bash
exec 1>output
echo 'test error' >&2
echo 'output1'
echo "output2"
[root@localhost110 ~]# ./h.sh
test error
[root@localhost110 ~]# cat output
output1
output2
h.sh內容
[root@localhost110 ~]# ./h.sh
[root@localhost110 ~]# cat output
output1
output2
[root@localhost110 ~]# cat output_err
test error
test error2
輸入重定向
exec 0<filename
h1.sh內容
[root@localhost110 ~]# chmod u+x h1.sh
[root@localhost110 ~]# ./h1.sh
line #1:test error
line #2:test error2
管道
將一個命令的輸出重定向至另一個命令的輸入
command1|command2
2命令是同時進行的不是先執行完一個再繼續下一個的
tee 輸出到文件
[root@localhost110 ~]# date
2016年 10月 16日 星期日 09:52:05 EDT
[root@localhost110 ~]# date|tee datefile
2016年 10月 16日 星期日 09:52:17 EDT
[root@localhost110 ~]# cat datefile
2016年 10月 16日 星期日 09:52:17 EDT
shell編程中的變量
用戶自定義變量
系統環境變量
按照作用范圍
腳本中的自定義變量
環境變量
局部環境變量
全局環境變量
shell腳本中的自定義變量規則
合法字符:字母,數字,下劃線
合法字符數量:<=20
特別注意:區分大小寫
變量聲明
變量名=變量值 如var=1
變量值的類型:自動分配 數字,字符串 日期,數組
調用方式: 變量名如 變量名如 var
作用范圍:腳本生存周期內
`可把命令執行後的結果賦給變量
[root@localhost110 ~]# date
2016年 10月 16日 星期日 10:10:02 EDT
[root@localhost110 ~]# mdate=`date`
[root@localhost110 ~]# echo mdate2016年10月16日星期日10:10:23EDTmdate=‘date+ mdate2016年10月16日星期日10:10:23EDTmdate=‘date+ mdate
2016-10-16