awk命令失效与busybox

目前的设备,执行如下命令

[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


你可能感兴趣的:(awk,失效,busybox)