當前位置:首頁 » 操作系統 » linux替換變數

linux替換變數

發布時間: 2022-05-29 18:36:17

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系統

  • 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替換字元串的幾種方法

一)通過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詳細命令介紹及應用可如下進行查找

熱點內容
linuxo文件 發布:2024-05-05 15:19:12 瀏覽:943
手機伺服器地址或者域名 發布:2024-05-05 15:19:09 瀏覽:372
我的世界伺服器版如何登錄 發布:2024-05-05 15:17:28 瀏覽:794
綦江dns伺服器地址 發布:2024-05-05 15:04:11 瀏覽:556
山東省日照市監控伺服器地址 發布:2024-05-05 15:03:59 瀏覽:342
java提升教程 發布:2024-05-05 15:00:51 瀏覽:144
驅動編譯龍芯 發布:2024-05-05 14:41:31 瀏覽:957
起什麼密碼 發布:2024-05-05 14:29:48 瀏覽:562
安卓怎麼設置鎖屏時不顯示微信通話 發布:2024-05-05 14:21:59 瀏覽:223
qq怎麼訪問照片流 發布:2024-05-05 14:20:38 瀏覽:17