在一个脚本(Say myScript.ksh)中,我有一个包含文件路径的变量。
file=/home/vikas/input.ksh
在我的代码中需要来自该文件的内容,所以我通过做这样的事情来做一个正常的猫和grep这个文件
myVariable=`cat $file | grep "on this line" | cut -d"'" -f2`
现在每次启动myScript.ksh时,都会出现错误
cat: cannot open /home/vikas/input.ksh
但如果我在终端上直接做同样的事情,我可以看到文件input.ksh的内容
我不知道我做错了什么,有人可以帮助我吗?
答案 0 :(得分:3)
尝试翻转斜线,Linux使用/
代替\
答案 1 :(得分:3)
使用正斜杠,而不是反斜杠
file=/home/vikas/input.ksh
编辑:好的,这不是问题。
这就是我们现在所知道的:
请指明脚本运行的用户,并发布输出:
ls -l /home/vikas/input.ksh
此外,file myScript.ksh
的输出是什么?
答案 2 :(得分:0)
是的,最后问题解决了,虽然我找到了解决方案,并且无法理解为什么会有效。实际上我正在从其他文件中读取这个变量,它就是这样的
file=$HOME/vikas/input.ksh
问题在于$ HOME我做了什么我从变量文件中删除了$ HOME并通过这样做再次添加
file=`echo $file | awk 'BEGIN { FS="/"; OFS="/" } {$1=""; print $0}'`
file=$HOME$file
然后我做了cat $文件并且有效