<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
    主站蜘蛛池模板: 四虎永久在线精品免费观看地址 | 亚洲无码在线播放| baoyu116.永久免费视频| 久久青草免费91线频观看站街| 国产免费av片在线看| 亚洲人成国产精品无码| 337p日本欧洲亚洲大胆色噜噜| 亚洲av日韩精品久久久久久a| 日韩视频免费在线观看| 麻豆亚洲AV永久无码精品久久| 无遮挡呻吟娇喘视频免费播放| 最近免费中文字幕大全免费| 亚洲AV无码国产精品色午友在线| 国产色爽免费无码视频| 亚洲丝袜美腿视频| 91免费精品国自产拍在线不卡| 亚洲一日韩欧美中文字幕在线| 四虎影视成人永久免费观看视频| 国产公开免费人成视频| 精品在线免费视频| 国产成人午夜精品免费视频| 亚洲色无码专区一区| 亚洲第一成人影院| 亚洲成av人片天堂网无码】| 精品免费久久久久久久| 国产亚洲精品激情都市| 亚洲av纯肉无码精品动漫| 国产乱子伦精品免费无码专区 | 日韩精品无码免费视频| 国产亚洲精品a在线观看app| 91av视频免费在线观看| 亚洲色欲色欲www在线播放| 亚洲av日韩片在线观看| 暖暖日本免费中文字幕| 亚洲永久网址在线观看| 亚洲偷自拍拍综合网| 午夜网站在线观看免费完整高清观看 | 亚洲中文无码卡通动漫野外| 精品国产日韩亚洲一区| 99热在线免费观看| 日木av无码专区亚洲av毛片|