如何在sh脚本中读取命令行参数里的文件名?

city_tiger 2007-10-22 10:32:54
例如运行:aaa.sh /mnt/I/test.img
在aaa.sh里如何写,以取得test.img?
...全文
446 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
city_tiger 2007-10-24
  • 打赏
  • 举报
回复
哦,知道了,=后面不能有空格,多谢各位。
city_tiger 2007-10-24
  • 打赏
  • 举报
回复
试过,仍然运行出错,aaa=`basename $1` 无法给aaa赋值
cceczjxy 2007-10-24
  • 打赏
  • 举报
回复
aaa=`basename $1`
echo $aaa
city_tiger 2007-10-24
  • 打赏
  • 举报
回复
此方法失败:

#! /bin/sh
aaa= ${1##*/}
echo $aaa

运行出错!
cceczjxy 2007-10-23
  • 打赏
  • 举报
回复
如何实现basename?

--------------------
basename不用实现,是系统带的一个shell命令。
lujidan 2007-10-23
  • 打赏
  • 举报
回复
${1##*/}得到test.img
liuweni 2007-10-23
  • 打赏
  • 举报
回复
重定向
roadingyh 2007-10-22
  • 打赏
  • 举报
回复
如果你的分隔符:'/'是固定的,可以用awk
awk -F / '{print $4}' aaa.sh
city_tiger 2007-10-22
  • 打赏
  • 举报
回复
如何实现basename?
cceczjxy 2007-10-22
  • 打赏
  • 举报
回复
basename $1
city_tiger 2007-10-22
  • 打赏
  • 举报
回复
只打印出/mnt/I/test.img中的test.img,去掉路径/mnt/I/
谢谢!
yecheng_110 2007-10-22
  • 打赏
  • 举报
回复
echo $0 #aaa.sh
echo $1 #/mnt/I/test.img
city_tiger 2007-10-22
  • 打赏
  • 举报
回复
我是问如何写aaa.sh?执行aaa.sh /mnt/I/test.img后打印出test.img
谢谢!

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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