求教大神怎么用shell脚本把16进制的MAC地址转化为10进制

作者&投稿:中孙 (若有异议请与网页底部的电邮联系)
shell编写程序,将一个16进制数转换为等价的10进制整数值.~

var=0x0F
printf "%d
" $var

写了个最基本的功能,你自己还可以加上入参的合法性检查:
#!usr/bin/sh
IP_DEC=$1 # 从入参读取10进制的IP
IP_HEX=""
BASE=16 # 16进制

for i in $(seq 4)
do
DEC=`echo "$IP_DEC" | awk -F'.' "{print $"$i"}"` #将IP按.分割
HEX=`echo -n ""$DEC" "$BASE" o p" | dc` #转换为16进制

LEN=`echo $HEX |wc -c` #少于2位,左补0
if [[ LEN -lt 3 ]]
then
HEX="0$HEX"
fi

IP_HEX="$IP_HEX""$HEX" #16进制的IP拼接
done
echo "$IP_HEX"



合法的MAC地址包含:数字是1-9,字母A-F

其中A代表10、B代表11、C代表12、D代表13、E代表14、F代表15

比如MAC地址:"52:A4:00:A1:08:01"

第一段:52=5*16+2= 82

第二段:A4=10*16+4=164


echo "52:A4:00:A1:08:01" |awk 'BEGIN{FS=OFS=":"} {for(i=0;i++<NF;)$i=strtonum("0x"$i)}1'

结果:82:164:0:161:8:1



求助:使用SHELL语言编写一个脚本实现ftp功能,将一个文件从本地a目录取...
答:下面这个是我一直在用的,会检查ftp错误。!/bin/sh ftp_put(){ -n:不使用auto-login;-i:不使用交互式提示输入 ftp -n -i $ipAddr <<EOF quote USER $username quote PASS $password cd b lcd a binary put $myfile bye EOF } ipAddr=ftp地址 username=你的ftp用户名 password=你的ftp...

求教大神怎么用shell脚本把16进制的MAC地址转化为10进制
答:回答:合法的MAC地址包含:数字是1-9,字母A-F 其中A代表10、B代表11、C代表12、D代表13、E代表14、F代表15 比如MAC地址:"52:A4:00:A1:08:01" 第一段:52=5*16+2= 82 第二段:A4=10*16+4=164 echo "52:A4:00:A1:08:01" |awk 'BEGIN{FS=OFS=":"} {for(i=0;i++<NF;)$i=...

用shell脚本编写一个函数,调用两个数据文件的逐行数据(每一行有两个...
答:function fname(){ ...} while read line do num1=`echo $line | awk '{print $1}'`num2=`echo $line | awk '{print $2}'`fname $num1 $num2 done < $file

写一个简单的shell脚本或Python脚本
答:+str(i)+'/'+str(j)+'text.txt'f = open(fileName,'w')f.close()你把dir_Name = r'f:/27/other/py/File/File'+str(i)+'/'这里的f:/27/other/py改成你File文件夹所在的位置就可以使用了。File里面的File1-File20:20个File里每个包含23个txt文件,名字按照你说的创建的。

linux大神们帮帮忙 linux 编写shell脚本实现下功能
答:echo "hello `whoami`"if [ `date +%H` -lt 12 ];then echo "Good Morning!"else echo "Good Afternoon!"fi 把这段东西加到/etc/profile里

请问各位大神,如何在shell中调用expect脚本,并将刚刚在shell中处理后的...
答:使用变量保存处理结果,然后在调用expect !/bin/sh expect <<!spawn ssh xx@yyy expect "*Password*"send "xxx\r"expect ">"send "mkdir xxxxx\r"send "exit\r"expect eof !

求助各位大神。急啊!!!编写shell脚本,每日1:00删除7天以前的文件,并...
答:del_file.sh echo "del_file.sh start at `date`"cd $file_dir1pwdfind . -name "A*.TXT" -mtime +7 | xargs -I{} rm -f {}cd $file_dir2pwdfind . -name "A*.TXT" -mtime +7 | xargs -I{} rm -f {}echo "del_file.sh end at `date`"执行crontab -e 增加一行 0 ...

shell脚本实现自动sftp 下载 指定文件
答:1、设置linux无密码访问 ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub |ssh -p22 root@172.16.1.1 `cat - >> ~/.ssh/authorized_keys`2、scp -P22 /opt/a.txt root@172.16.1.1:/opt

请教大神shell的for in语句中怎么使用多个变量
答:1、遍历按空格分隔的字符串:!/bin/bash servers="abc123 das 222"for server in$servers do echo$server done 2、遍历字符串列表、用空格分隔:!/bin/bash for server in a b c do echo$server done 3、遍历参数列表:!/bin/bash for arg in do echo$arg done4、遍历文件目录:!/bin/...

Linux有两道shell编程的题,希望大神给解答一下
答:把shell脚本存储到一个文件中,如:move 和 mul 然后,用sh来执行脚本,或给脚本文件加上执行权限 一、sh ./move 二、chmod +x move ./move