首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于ll下令

2012-07-30 
关于ll命令现在我写了一个程序要获取ll命令执行的结果,用popen来执行,关键代码如下:snprintf(command,size

关于ll命令
现在我写了一个程序要获取ll命令执行的结果,用popen来执行,关键代码如下:
snprintf(command,sizeof(command),"ll /proc/889/|sed -n '/exe/p'|awk '{print $10}'");

fp=popen(command,"r");

fgets(result_buf,sizeof(result_buf),fp);

编译没问题,执行时 提示: sh:ll:not found
但是单独执行ll /proc/889/|sed -n '/exe/p'|awk '{print $10}'命令能够正确获得需要的结果。

这究竟是怎么回事。

[解决办法]
ll是alias,popen是重新创建一个子进程执行/bin/bash使用-c command命令行参数解析你的口令,但这个alias不是环境变量里的东西,每次shell启动都要去读文件加载,所以你的popen的shell就没有ll。

[User:root Time:04:25:14 Path:/home/apache/web]$ alias ll
alias ll='ls -l --color=auto'

热点排行