<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
    八、環境文件
    ?
    ??? bash的環境文件包括:.bash_profile文件、.bashrc文件、.bash_logout文件等
    ?
    ??? .bash_profile:設置化境變量和文件掩碼(umask),注冊后執行
    ??? .bashrc:只含有針對bash的腳本,可以用來設置別名,在.bash_profile之后執行
    ??? .bash_logout:退出注冊是執行,例如清屏等操作
    ?
    ??? 注:若是C shell,則相應文件為.login
    ?
    ?
    九、export語句與環境設置
    ?
    1、export語句
    ?
    ??? 在腳本或命令行中定義的變量(包括環境變量),僅在同一shell下有效,例如:
    ??? $ string="XXXX"
    ??? $ cat ex11
    ??????? echo "the name is $string"
    ??? $ ./ex11
    ??????? the name is
    ??? $ echo $string
    ??????? the name is XXXX
    ??? 可以看到,上面的例子中,定義的string變量僅在當前的shell下有效,而在ex11環境下為空。
    ?
    ??? export命令的作用就是將私有的變量export到轉出區
    ??? export [變量名]
    ?
    ??? 例如:
    ??? $ name="AAA"
    ??? $ export name
    ??? $ cat ex12
    ??????? name="BBB"
    ??????? echo "His name is $name"
    ??????? ex13
    ??? $ cat ex13
    ??????? echo "Her name is $name"
    ??? $ ./ex12
    ??????? His name is BBB
    ??????? Her name is AAA
    ?
    ??? 注:export在同一命令行中可以對應多個變量,例如:
    ??? $ export TERM PATH SHELL HOME
    ?
    2、環境變量的設置和顯示
    ?
    ??? 直接設置變量的形式為: [變量名]=值
    ??? 注意:如果含有空格等特殊字符,用""括起來
    ?
    ??? 可以使用不帶參數的export命令顯示本進程利用export命令所輸出的全部變量
    ??? $ export
    ??????? declare -x HOME="/home/oracle"
    ??????? declare -x HOSTNAME="localhost.localdomain"
    ??????? declare -x INPUTRC="/etc/inputrc"
    ??????? declare -x LANG="en_US.UTF-8"
    ??????? declare -x PWD="/home/oracle"
    ??????? declare -x SHELL="/bin/bash"
    ??????? declare -x SHLVL="2"
    ??????? declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
    ??????? declare -x SSH_CLIENT="::ffff:192.168.63.1 1474 22"
    ??????? declare -x SSH_CONNECTION="::ffff:192.168.63.1 1474 ::ffff:192.168.63.3 22"
    ??????? declare -x SSH_TTY="/dev/pts/1"
    ??????? declare -x TERM="vt100"
    ??????? ... ...
    ??? 也可以使用env命令列出所有的化境變量(包括本進程和以前進程所輸出的變量)
    ??? $ env
    ??????? MAIL=/var/spool/mail/root
    ??????? PWD=/home/oracle
    ??????? INPUTRC=/etc/inputrc
    ??????? LANG=en_US.UTF-8
    ??????? SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
    ??????? HOME=/home/oracle
    ??????? SHLVL=2
    ??????? LOGNAME=oracle
    ??????? SSH_CONNECTION=::ffff:192.168.63.1 1474 ::ffff:192.168.63.3 22
    ??????? LESSOPEN=|/usr/bin/lesspipe.sh %s
    ??????? G_BROKEN_FILENAMES=1
    ??????? OLDPWD=/root
    ??????? ... ...
    ?
    3、set命令
    ?
    ??? set命令的功能有三個:
    ?
    ??? ① 顯示迄今為止所有定義的變量,包括局部變量和公用變量
    ??? ② 設定位置參數的值
    ??? ③ 改變執行shell腳本時的選項設定
    ?
    ??? 功能①即使用不帶參數的set命令
    ??? 功能②見上文
    ??? 功能③說明如下:
    ?
    ??? 設置標志:set -標志
    ??? 關閉標志:set +標志
    ?
    ??? 標志說明:
    ?
    ??? -x:命令打印,并在前面加“+”
    ??? -v:所有命令均打印出來
    ??? -a:對被修改、創建的變量自動標記,表明要被export到后繼名命令的環境中
    ??? -e:命令以非0狀態終止時退出shell(循環/if語句除外)
    ??? -f:禁止路徑名擴展
    ??? -h:記住命令位置,便于查找(默認打開)
    ??? -k:把全部以賦值語句形式出現的參數放在命令的環境中
    ??? -n:讀命令,但不執行???
    ?
    ?
    十、參數置換變量
    ?
    ??? 參數置換變量是另一種為參數復制的方式,形式為:
    ??? [變量2]=${[變量1]op[字符串]}?? op in [ :- | := | :+ | :? ]
    ?
    ??? 注:op兩邊不能有空格
    ?
    1、[變量2]=${[變量1]:-[字符串]}
    ?
    ??? 如果[變量1]為空,則[變量2]=[字符串],[變量1]不變;否則[變量2]=[變量1],[變量1]不變
    ?
    ??? 舉例:
    ??? $ cat ex15
    ??????? echo -n "Please enter TERM1(default is ansi)->"
    ??????? read terminal
    ??????? TERM1=${ terminal:-ansi }
    ??????? echo "terminal type is $TERM1 now."
    ??????? echo "terminal=$terminal"
    ??? $ ./ex15
    ??????? Please enter TERM1(default is ansi)->(按Enter鍵)
    ??????? terminal type is ansi now.
    ??????? terminal=
    ??? $ ./ex15
    ??????? Please enter TERM1(default is ansi)->(vt100 按Enter鍵)
    ??????? terminal type is vt100 now.
    ??????? terminal=vt100
    ?
    2、[變量2]=${[變量1]:=[字符串]}
    ?
    ??? 如果[變量1]為空,則[變量2]=[字符串],[變量1]=[字符串];否則[變量2]=[變量1],[變量1]不變
    ?
    ??? 舉例:
    ??? $ cat ex16
    ??????? echo -n "Please enter TERM2(default is ansi)->"
    ??????? read terminal
    ??????? TERM2=${ terminal:=ansi }
    ??????? echo "TERM2=${TERMS2}***terminal=$terminal"
    ??? $ ./ex16
    ??????? Please enter TERM2(default is ansi)->(按Enter鍵)
    ??????? TERM2=ansi***terminal=ansi
    ??? $ ./ex16
    ??????? Please enter TERM2(default is ansi)->(vt100 按Enter鍵)
    ??????? TERM2=vt100***terminal=vt100
    ?
    3、[變量2]=${[變量1]:+[字符串]}
    ?
    ??? 如果[變量1]為空,則[變量2]為空,[變量1]不變;否則[變量2]=[字符串],[變量1]不變
    ?
    ??? 舉例:
    ??? $ cat ex17
    ??????? echo -n "Please enter TERM3(default is ansi)->"
    ??????? read terminal
    ??????? TERM3=${ terminal:+ansi }
    ??????? echo "TERM3=${TERMS3}!!!terminal=$terminal"
    ??? $ ./ex17
    ??????? Please enter TERM3(default is ansi)->(按Enter鍵)
    ??????? TERM3=!!!terminal=
    ??? $ ./ex17
    ??????? Please enter TERM3(default is ansi)->(vt100 按Enter鍵)
    ??????? TERM3=ansi!!!terminal=vt100
    ?
    4、[變量2]=${[變量1]:?[字符串]}
    ?
    ??? 如果[變量1]為空,則輸出 “[shell腳本名]:[變量1]:[字符串]”;否則[變量2]=[變量1],[變量1]不變
    ?
    ??? 舉例:
    ??? $ cat ex18
    ??????? echo -n "Please enter TERM4(default is ansi)->"
    ??????? read terminal
    ??????? TERM4=${ terminal:+ansi }
    ??????? echo "TERM4=${TERMS4}\$\$\$terminal=$terminal"
    ??? $ ./ex18
    ??????? Please enter TERM4(default is ansi)->(按Enter鍵)
    ??????? ex18:terminal:ansi
    ??? $ ./ex18
    ??????? Please enter TERM3(default is ansi)->(vt100 按Enter鍵)
    ??????? TERM3=ansi$$$terminal=vt100
    ?
    ??? 注:顯示的[變量1]是其名稱,而不是它的值。
    ?
    ?




    -The End-

    posted on 2009-01-10 23:14 decode360-3 閱讀(362) 評論(0)  編輯  收藏 所屬分類: Linux
    主站蜘蛛池模板: 亚洲va中文字幕无码| 在线观看免费大黄网站| 亚洲精品~无码抽插| 久久成人18免费网站 | 免费人成视频在线| 亚洲一级毛片在线播放| 国产99视频精品免费观看7| 亚洲Av高清一区二区三区| 好爽…又高潮了免费毛片| 最新亚洲人成无码网www电影| 免费国产真实迷j在线观看| 免费在线观看一区| 国产亚洲精品无码成人| 久久99国产综合精品免费| 亚洲日韩乱码中文无码蜜桃 | 嫩草影院在线播放www免费观看| 亚洲AV永久无码精品成人| 蜜桃成人无码区免费视频网站 | 久久精品7亚洲午夜a| 99久久精品免费精品国产| 亚洲一卡2卡3卡4卡国产网站 | 成人精品综合免费视频| 久久被窝电影亚洲爽爽爽| 最近2019免费中文字幕6| 亚洲人成网亚洲欧洲无码| 亚洲а∨天堂久久精品| 你懂的免费在线观看| 亚洲Av高清一区二区三区| 亚洲午夜无码AV毛片久久| 99re这里有免费视频精品| 亚洲av永久无码天堂网| 中文字幕第13亚洲另类| h视频在线观看免费完整版| 成a人片亚洲日本久久| 国产亚洲精品a在线观看app | 免费人成再在线观看网站| 亚洲视频免费在线观看| 日韩精品免费一区二区三区| 中国videos性高清免费| 亚洲男人天堂2018av| 中文字幕亚洲激情|