shell過濾後賦值
① bash 過濾注釋文本取某一參數給變數賦值的一個問題
#!/bin/bash
line="abc [def] gh"
echo $line
line=$(echo $line | tr -d []) # line=$(echo "$line" | tr -d "[]") # 都可以
echo $line
ABS_Guide_cn.txt 是好書。
tr
字元轉換過濾器.
注意: 必須使用引用或中括弧, 這樣做才是合理的版. 引用可以阻止 shell 重新權解釋出現在
tr 命令序列中的特殊字元.中括弧應該被引用起來防止被shell擴展.
無論 tr "A-Z" "*" <filename 還是 tr A-Z \* <filename 都可以將 filename 中的大
寫字元修改為星號(寫到 stdout).但是在某些系統上可能就不能正常工作了, 而 tr A-Z '
[**]' 在任何系統上都可以正常工作.
② shell中如何把一段指令的結果賦值給變數
用反引號將命令括起來,如變數=`命令`
用美元符和小括弧將命令括起來,如變數回=$(命令)
③ 新手用shell時 , 用sed從文本中取出了字元串(全是數字), 我想把它賦值到一個變數n上,
n=`sed **** | awk '{printf "%d",$0}'`----sed就是你的事情了。。。
④ shell拆分字元串:將字元串最後一個「/」後的內容賦值給變數B,然後將其餘的賦值給A。
用重定向而不是管道,舉例:-(dearvoid@LinuxEden:Forum)-(~專/tmp)-
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[31048 0] ; cat file.sh
#!屬/bin/bash
arr=()
i=0
while read line; do
arr[i++]=$line
done < file
echo ${#arr[@]}
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[31048 0] ; ./file.sh
5
⑤ shell腳本求助
問題一:
HWaddr=`ifconfig eth0 | grep HWaddr | awk '{print $NF}'`
說明:用grep獲取包含HWaddr即MAC地址的那行內內容,然後通過awk中的$NF獲取最後一個欄位即MAC地址內容。容
問題二:
#!/bin/sh
if [ $# -ne 2 ]; then #判斷參數個數,若不等於2提示錯誤及正確用法
echo "Two arguments are required!"
echo "Usage: `basename $0` num1 num2" #basename用於去除腳本路徑僅取腳本名
exit 1
fi
let rtn=$1*$1+$2*$2 #使用shell內建命令let做運算
echo $rtn
exit 0
⑥ shell 下幾種常見的變數賦值方法
用awk或者是cut 把指定的欄位(用一定的分隔符分隔的欄位)賦值給某個變數回 variable=`awk '{print $n}' filename` 用cut也能實現類似的答辦法
用awk的substr函數把指定欄位的某幾個字元賦值給variable,看下邊的例子: ifconfig |grep "inet addr" |awk '{print substr($2,6)}'
用for函數把指定范圍的值賦值給變數 for i in `cat file.txt` do do sth here done 用代碼塊重定向: while read line do do sth here done < filename
⑦ shell把一段指令的結果賦值給變數
變數賦值,等號兩邊不要有空格
seldate=`date-d"1weeksago"+%Y-%m-%d`
⑧ linux shell 截取內容,賦值給變數
var1=`grep xxx`
⑨ shell中如何截取字元串賦值給變數
用反引號將命令括起來,如變數=`命令`
用美元符專和小括弧將命令括起來,如變數=$(命令)
C Shell:Bill Joy於20世紀屬80年代早期,在伯克利的加利福尼亞大學開發了C shell。它主要是為了讓用戶更容易的使用互動式功能,並把ALGOL風格的語法結構變成了C語言風格。它新增了命令歷史、別名、文件名替換、作業控制等功能。
在計算機科學中,Shell俗稱殼(用來區別於核),是指「提供使用者使用界面」的軟體(命令解析器)。它類似於DOS下的command.com和後來的cmd.exe。它接收用戶命令,然後調用相應的應用程序。
⑩ shell變數用grep怎麼不能賦值
應該是可以賦值的,需要看你的報錯是什麼
假設你的原始變數信息太大,你可以通過grep的方式過濾你不需要的信息,把你要的內容賦值給新的變數