linux替換變數
❶ linux shell 怎麼替換變數內容
在linux中替換shell變數的內容,一般指的是shell 變數的擴展等操作,可以看一下shell變數操作的相關的#、%等操作符應該可以解決你的問題。
❷ linux變數字元串替換問題
換個角度,替換/bin為/BIN就不會有錯啦
echo${path//bin//BIN}
其中/前面要加轉義符
或者用sed來替換,
echo$path|sed's#/bin#/BIN#g'
格式為s#A#B#,將A替換為B。
後面加個g表示全局替換,即替換所有出現的。
也可以這樣寫:
echo$path|sed's#[^s]bin#/BIN#g'
[^s]在正則中表示不是s的一個字元。這里只有兩種情況,一種是sbin,一種是/bin,這樣sbin就可以被排除了。
❸ linux怎麼可以遠程更改變數
我們來看看所有這些 $ 值可以告訴你什麼。
-- Sandra Henry-stocker
變數通常看起來像 $var 這樣,但它們也有 $1、$*、$? 和 $$ 這種形式。讓我們來看看所有這些 $ 值可以告訴你什麼。
有許多重要的值都存儲在 Linux 系統中,我們稱為「變數」,但實際上變數有幾種類型,並且一些有趣的命令可以幫助你使用它們。在上一篇文章中,我們研究了以及它們定義在何處。在本文中,我們來看一看在命令行和腳本中使用的變數。
用戶變數
雖然在命令行中設置變數非常容易,但是有一些有趣的技巧。要設置變數,你只需這樣做:
$ myvar=11
$ myvar2="eleven"
要顯示這些值,只需這樣做:
$ echo$myvar
11
$ echo$myvar2
eleven
你也可以使用這些變數。例如,要遞增一個數字變數,使用以下任意一個命令:
$ myvar=$((myvar+1))
$ echo$myvar
12
$ ((myvar=myvar+1))
$ echo$myvar
13
$ ((myvar+=1))
$ echo$myvar
14
$ ((myvar++))
$ echo$myvar
15
$ let "myvar=myvar+1"
$ echo$myvar
16
$ let "myvar+=1"
$ echo$myvar
17
$ let "myvar++"
$ echo$myvar
18
使用其中的一些,你可以增加一個變數的值。例如:
$ myvar0=0
$ ((myvar0++))
$ echo$myvar0
1
$ ((myvar0+=10))
$ echo$myvar0
11
通過這些選項,你可能會發現它們是容易記憶、使用方便的。
你也可以刪除一個變數 – 這意味著沒有定義它。
$ unsetmyvar
$ echo$myvar
另一個有趣的選項是,你可以設置一個變數並將其設為只讀。換句話說,變數一旦設置為只讀,它的值就不能改變(除非一些非常復雜的命令行魔法才可以)。這意味著你也不能刪除它。
$ readonly myvar3=1
$ echo$myvar3
1
$ ((myvar3++))
-bash:myvar3:readonly variable
$ unsetmyvar3
-bash:unset:myvar3:cannot unset:readonly variable
你可以使用這些設置和遞增選項中來賦值和操作腳本中的變數,但也有一些非常有用的內部變數可以用於在腳本中。注意,你無法重新賦值或增加它們的值。
內部變數
在腳本中可以使用很多變數來計算參數並顯示有關腳本本身的信息。
◈ $1、 $2、 $3 等表示腳本的第一個、第二個、第三個等參數。
◈ $# 表示參數的數量。
❹ linux下shell編程變數替換問題
file打開文件,然後再輸入
i=$( ls )
w保存。
不要用cat > file <<
方式寫腳本, 這樣腳本內容會被shell解釋展開。追問用cat命令寫腳本的好處是調用命令,目錄,文件名的時候可以table鍵補齊,這樣子會方便很多啊。v要實現這個功能的話,需要安裝什麼插件嗎?
❺ linux下變數的刪除、替換與替代。
shell環境變數嗎?
unset 命令可以刪除,替換的話直接賦值就好了,用export的話可以讓
這個環境變數被子進程繼承
❻ Linux 變數的替換
1、定義變數myhome,它的值為/usr/app1。
2、顯示變數myhome的值。
3、顯示變數值中的內容。
設置的變數時一個目錄,所以就顯示出裡面的文件了。
❼ 如何在Linux中修改環境變數PATH
首先,修改Linux的環境變數PATH的語法是這樣的(以把/root目錄加入PATH環境變數為例):PATH="$PATH":/root,注意Linux的PATH環境變數各個路徑之間是用英文冒號分割的(這點和Windows的PATH環境變數有所區別,Windows的PATH環境變數的路徑之間用英文分號分割)。
解釋:"$PATH"這一部分代表原來的PATH環境變數的內容,因為PATH環境變數是如此重要,對PATH環境變數的修改都是在原PATH的基礎上進行添加,所以用"$PATH"導入原PATH的內容,然後後面用英文冒號分割開,再加上/root這個新添加的內容。意思就是在原PATH內容的基礎上添加/root這個路徑(盡量在原PATH的內容基礎上添加,不要去掉原PATH裡面的任何內容)。
那對PATH環境變數的修改應該寫在那個配置文件中呢?如果想讓設置只對當前用戶有效,可以在~/.bashrc文件中加入如下兩行(還是以添加/root目錄為例):
PATH="$PATH":/root
export PATH
添加完成後,如果想讓設置馬上生效,還需要執行這樣一條命令:source ~/.bashrc。(否則你的設置只會在下次登錄才生效)
如果想讓修改對所有用戶都有效,則需要把設置添加到/etc/profile這個配置文件中,添加的內容和在~/.bashrc中的一樣。
❽ Linux如何刪除替換變數值Linux刪除替換變數值的方法
在Linux系統中,對變數進行賦值後需要發現有些問題,需要對變數值進行刪除或替換,本文將針對Linux變數值的替換和刪除做個詳細介紹,希望對你有所幫助。一起去看看吧!
1、變數內容的刪除
[root@bogon ~]# echo ${PATH} #呼叫出PATH變數的值
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH#/*bin:} #看見那個“#”符號,表示從變數“PATH”值的左邊開始向右邊刪除能匹配到“*bin:”的位置,僅刪除能匹配到最短的那個,所以輸出內容如下,“/usr/local/sbin:”被刪除了
/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH#*local/bin:}
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH##/*bin:} #兩個“#”表示刪除能匹配到最長的那個,所以“/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:”全部被刪除
/root/bin
[root@bogon ~]# echo ${PATH%:/*bin} #把上邊的“#”號換成“%”看看,表示從變數“PATH”值的右邊開始向左邊刪除能匹配到“*bin”的位置,僅刪除能匹配到最短的那個,所以“:/root/bin”被刪除
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
[root@bogon ~]# echo ${PATH%%:/*bin} #兩個“%”與兩個“#”類似的道理
/usr/local/sbin
2、變數內容的替換
[root@bogon ~]# echo ${PATH/sbin/SBIN/} #用“SBIN”替換“sbin”,但只替換第一次匹配到的
/usr/local/SBIN/:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
[root@bogon ~]# echo ${PATH//sbin/SBIN/} #用“SBIN”替換“sbin”,全局替換
/usr/local/SBIN/:/usr/local/bin:/SBIN/:/bin:/usr/SBIN/:/usr/bin:/usr/local/mysql/bin:/root/bin
變數內容刪除與替換小結:
變數書寫方式功能描述
${變數名稱#匹配字元}若變數內容有被匹配到,剛從變數內容的左邊開刪除,但刪除匹配最短的
${變數名稱##匹配字元}若變數內容有被匹配到,剛從變數內容的左邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式
${變數名稱%匹配字元}若變數內容有被匹配到,剛從變數內容的右邊開刪除,但刪除匹配最短的
${變數名稱%%匹配字元}若變數內容有被匹配到,剛從變數內容的右邊開刪除,但刪除匹配最長的,可理解成此時工作在貪婪模式
${變數稱/舊字元串/新字元串}從變數內容的左邊開始匹配,用新字元串替換舊字元串,僅替換第一個匹配到的字元串
${變數稱//舊字元串/新字元串}從變數內容的左邊開始匹配,用新字元串替換舊字元串,全部替換匹配到的字元串
以上內容就是今天小編為大家帶來的關於Linux刪除和替換變數值的方法了,本文只介紹了刪除和替換這兩種方法,變數的修改還有取代等方式,這里就不一一介紹了。希望能夠幫助到大家!
❾ 8)Linux操作系統用上哪些文件能夠修改環境變數,修改全局變數的文件是哪個
Linux不像window界面那樣可視化更明顯、操作也便利;因此大多數人對Linux的設置都比較頭疼,一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設置環境變數。例如我的mips-linux-gcc編譯器在「/opt/au1200_rm/build_tools/bin」目錄下,build_tools就是我的編譯工具,則有如下三種方法來設置環境變數。
工具/原料
電腦
Linux系統
1、直接用export命令:
#exportPATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已經設好,可用命令export查看:
[root@localhostbin]#export
declare-xBASH_ENV="/root/.bashrc"
declare-xG_BROKEN_FILENAMES="1"
declare-xHISTSIZE="1000"
declare-xHOME="/root"
declare-xHOSTNAME="localhost.localdomain"
declare-xINPUTRC="/etc/inputrc"
declare-xLANG="zh_CN.GB18030"
declare-xLANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
declare-xLESSOPEN="|/usr/bin/lesspipe.sh%s"
declare-xLOGNAME="root"
declare-xLS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*NaNd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare-xMAIL="/var/spool/mail/root"
declare-xOLDPWD="/opt/au1200_rm/build_tools"
declare-xPATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin"
declare-xPWD="/opt/au1200_rm/build_tools/bin"
declare-xSHELL="/bin/bash"
declare-xSHLVL="1"
declare-xSSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare-xSSH_AUTH_SOCK="/tmp/ssh-XX3LKWhz/agent.4242"
declare-xSSH_CLIENT="10.3.37.152223622"
declare-xSSH_CONNECTION="10.3.37.152223610.3.37.18622"
declare-xSSH_TTY="/dev/pts/2"
declare-xTERM="linux"
declare-xUSER="root"
declare-xUSERNAME="root"
可以看到,環境變數已經設好,PATH裡面已經有了我要加的編譯器的路徑
Linux環境變數基礎配置說明
❿ 總結linux替換字元串的幾種方法
一)通過vi編輯器來替換。
vi/vim 中可以使用 :s 命令來替換字元串。
:s/well/good/ 替換當前行第一個 well 為 good
:s/well/good/g 替換當前行所有 well 為 good
:n,$s/well/good/ 替換第 n 行開始到最後一行中每一行的第一個 well 為 good
:n,$s/well/good/g 替換第 n 行開始到最後一行中每一行所有 well 為 good
n 為數字,若 n 為 .,表示從當前行開始到最後一行
:%s/well/good/(等同於 :g/well/s//good/) 替換每一行的第一個 well 為 good
:%s/well/good/g(等同於 :g/well/s//good/g) 替換每一行中所有 well 為 good
可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#well/#good/# 替換當前行第一個 well/ 為 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路徑/usr/bin換成/bin
(二)直接替換文件中的字元串。(此法不用打開文件即可替換字元串,而且可以批量替換多個文件。)
1.perl命令替換,參數含義如下:
-a 自動分隔模式,用空格分隔$_並保存到@F中。相當於@F = split 」。分隔符可以使用-F參數指定
-F 指定-a的分隔符,可以使用正則表達式
-e 執行指定的腳本。
-i<擴展名> 原地替換文件,並將舊文件用指定的擴展名備份。不指定擴展名則不備份。
-l 對輸入內容自動chomp,對輸出內容自動添加換行
-n 自動循環,相當於 while(<>) { 腳本; }
-p 自動循環+自動輸出,相當於 while(<>) { 腳本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
將所有C程序中的foo替換成bar,舊文件備份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
將當前文件夾下lishan.txt和lishan.txt.bak中的「shan」都替換為「hua」
perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
將每個文件中出現的數值都加一
2.sed命令下批量替換文件內容
格式: sed -i "s/查找欄位/替換欄位/g" `grep 查找欄位 -rl 路徑` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目錄
-l 表示輸出匹配的文件名
s表示替換,d表示刪除
示例:sed -i "s/shan/hua/g" lishan.txt
把當前目錄下lishan.txt里的shan都替換為hua 各個Linux詳細命令介紹及應用可如下進行查找