您的位置:首页 > 其它

awk命令失效与busybox

2016-01-27 16:10 489 查看
目前的设备,执行如下命令

[root@Huahuan:home]#ls -l | awk '{print $2}'

total 32996

-rwxrwxrwx    1 1000     1000           245 Jan  1 12:30 autorun.sh

drwxr-xr-x    3 root     root           224 Jan  1 00:42 config

-rwxr-xr-x    1 root     root         13016 Jan  1 01:05 demo

-rwxr-xr-x    1 1000     1000         13128 Jun 18  2015 demo-fpga

-rwxr-xr-x    1 root     root            63 Jan  2 01:15 down.sh

-rwxr-xr-x    1 root     root         13016 Jan  1 01:04 dpll

-rwxr-xr-x    1 1000     1000         10825 Nov 24 09:16 dpll.sh

-rwxr-xr-x    1 root     root         13016 Jan  1 01:03 fpga

awk命令并不生效,执行awk

[root@Huahuan:home]#awk

BusyBox v1.23.2 (2016-01-25 14:05:24 CST) multi-call binary.

Usage: awk [OPTIONS] [AWK_PROGRAM] [FILE]...

        -v VAR=VAL      Set variable

        -F SEP          Use SEP as field separator

        -f FILE         Read program from FILE

        -e AWK_PROGRAM

[root@Huahuan:home]#ls /usr/bin/awk 

/usr/bin/awk

可见命令是有的,但不生效,由于之前的busybox是别人做的,找不到使用的源码了

于是,下载了一个比较新的busybox 1.23.2

或 http://linux.linuxidc.com/pub/BusyBox/

用户名与密码都是www.linuxidc.com
使用的默认配置,改了下工具链
编译的时候遇到ubi的问题,可以百度

make; make install 后

做出来的awk还是无效的

(┬_┬)

后来从网上下载了一个别人编好的busybox,一试,没问题

看来还是我配置编译的有问题

后来看到这么一句话

 Build Options
  Build BusyBox as a static binary (no shared libs)
  这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作.

这才明白,编好的可执行文件,移植到其他平台很可能导致缺少相关函数库,而且这又是一个gnu extent cmd

编成静态库后,awk好用了

[root@Huahuan:home]#ls -l |awk '{print $3}'

1000

root

root

1000

root

root

1000

root

root

root

root

root

1000

root
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: