在linux 下执行shell文件提示:No such file or directory,但这个路径明明是存在的,为啥呢?求指教?
这个路径是重txt文档中读出来的,让后用的一个变量,如果在程序中直接使用“~/jre/log1”就没有问题~...
这个路径是重txt文档中读出来的,让后用的一个变量,如果在程序中直接使用“~/jre/log1”就没有问题~
展开
4个回答
展开全部
这个问题应该出在find命令上,在脚本中你的路径“~/jre/log1”被保存在一个变量中$logPath
在脚本中:find $logPath -ctime +7这条命令,find把“~”当成普通字符,而不会解析为对应的home目录。
在命令行(shell环境下)环境下:为什么cd ~/jre/log1成功,是因为shell帮你解析“~”为对应的home目录了。
所以如果在脚本中使用find命令,且用“~”表示要使用当前用户home目录,可以结合eval命令使用:
#!/bin/bash
logpath=$(cat /tmp/test.txt) 获取带有~的路径
find $(eval echo $logpath) -name "*.txt" 使用eval计算表达式结果
展开全部
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你理解错了,除非特别加上,否则home directory不在$PATH里。用echo $PATH试试就清楚了。
追问
echo $PATH,这个现实的就是~/jre/log1,没有问题啊,我试过了
追答
$PATH里最好改用绝对路径。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询