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的方式过滤你不需要的信息,把你要的内容赋值给新的变量