猫无法打开文件
问题描述:
在脚本(说myScript.ksh)我有一个包含文件路径的变量。猫无法打开文件
file=/home/vikas/input.ksh
在我的代码从该文件中需要的东西,所以我做这样的事情
myVariable=`cat $file | grep "on this line" | cut -d"'" -f2`
做一个正常的猫和grep对这个文件现在每次我启动myScript.ksh,我得到一个错误
cat: cannot open /home/vikas/input.ksh
但是,如果我在终端direcly做同样的事情,我能看到文件input.ksh内容
我不知道我在做什么错,有人可以帮我吗?
答
耶最后的问题解决了,但我发现weired的解决方案,不明白为什么它的工作。其实我是从其它文件中读取此变量,它是这样的
file=$HOME/vikas/input.ksh
的问题是与$ HOME我做什么,我从变量文件中删除$ HOME并补充说,再次这样做
file=`echo $file | awk 'BEGIN { FS="/"; OFS="/" } {$1=""; print $0}'`
file=$HOME$file
之后,我做了cat $文件,它的工作
答
使用正斜杠,而不是反斜杠
file=/home/vikas/input.ksh
编辑:好了,这是没有问题的。
下面是我们知道在这一点上:
- 他使用正确的斜线。
- 如果他的硬编码文件名,脚本工作。
- 脚本运行作为不同的用户(我想?)。
请注明脚本运行作为用户,和后期的输出:
ls -l /home/vikas/input.ksh
此外,什么是file myScript.ksh
输出?
它是你的文件路径吗?你有没有试过/home/vikas/input.ksh? – Kasapo 2012-07-16 15:24:15
“猫不能打开文件”他们没有对生拇指,换一个。 – vcsjones 2012-07-16 15:24:21
@vcsjones也许我不应该,但加上一个傻笑因素 – Kasapo 2012-07-16 15:25:04