- 论坛徽章:
- 1
|
本帖最后由 linuxfellow 于 2013-01-11 11:23 编辑
想在C代码里运行一段shell scripts
const char xmlShellcmdBuf[] = "mount | awk '{print $3}'|sed 's;$;/xyz/xyz.xml;g'|sed 's;//;/;g'|awk '{if(test -f $1){ print $1}}'";
作用是,先用mount命令找到所有文件系统挂载点;从挂载点开始在固定目录下找指定文件” xyz/xyz.xml, 上面是代码.
前面的部分能正常工作:
mount | awk '{print $3}'|sed 's;$;/xyz/xyz.xml;g'|sed 's;//;/;g'
能构造出想要查找的文件的文件名: ${mount_point}/xyz/xyz.xmk
最后一部分有问题:
awk '{if(test -f $1){ print $1}}'
这一段的本意是要检查前面构造出的文件名对应的文件是否真实存在, 如存在,才打印该文件名。 但“test -f $1” 总是返回真,把不存在的文件也打印出来了。
试了if [ -f $1 ] ....., 但C code编译通不过;引号里再带引号,C code也不能编译, 如"test -f "$1""C code就不能编译。
不知test -f $1问题出在什么地方?
谢谢! |
|