这个问题应该出在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计算表达式结果
cat ~/jre/log...
用绝对路径
比如 cat /home/my/name/jre/log....
写脚本用相对路径是大忌啊
如果你没进行chmod +x 你的脚本名的话,就用bash 你的脚本名字来执行,如果你执行过了,就使用./你的脚本名来执行,
前提是你的脚本OK
你理解错了,除非特别加上,否则home directory不在$PATH里。用echo $PATH试试就清楚了。