用shell script执行文件遇到问题

YilingWander 2015-10-05 04:50:44
先贴上所写的shell script文件,目的是抓取目录下面所有文件的文件名作为参数执行文件,

#!/bin/sh
for kfile in *
do
tmp=`basename $kfile`
if [ $tmp != "test.sh" ];then
cd ${tmp}
for aFile in *
do
filename="~/Codes/GCode/result/${tmp}/${aFile}"
./main ./grid_edge_0.05.txt $filename
done
fi
cd ..
done


其中main是编译形成的可执行文件,grid_edge_0.05.txt是执行文件的第一个参数,想将目录下的文件名逐个作为参数传入运行程序,但是发现执行的时候$filename没有显示其内容,而是直接以“$filename”作为参数运行。

刚学着用shell script运行程序,遇到该问题不知怎么解决,想用搜索引擎找答案可是不知道具体搜索什么才可以,所以只能麻烦请论坛各位大神帮忙!非常感谢!
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobo928843007 2015-10-24
  • 打赏
  • 举报
回复
main.c你传什么就是什么,它不识别shell变量吧
YilingWander 2015-10-15
  • 打赏
  • 举报
回复
引用 2 楼 q3733353520 的回复:
echo $filename 看看
谢谢你! echo $filename的时候确实是出来正确的内容,但是执行的那条命令时,在$filename 的地方直接就是 “$filename”,而不是它的内容。
YilingWander 2015-10-15
  • 打赏
  • 举报
回复
引用 1 楼 ckc 的回复:
感觉是你的./main写的有问题
main 程序没有问题,不用script而是command line执行都是可以的,而是在传递命令参数的时候一直无法传递文件名。 不过还是谢谢你~
  • 打赏
  • 举报
回复
echo $filename 看看
ckc 2015-10-06
  • 打赏
  • 举报
回复
感觉是你的./main写的有问题

18,828

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧