我想通过提供包含变量的绝对路径来捕获或读取文件的内容,但是它不起作用。
以下命令均不起作用。
($line
这是文件的名称)
content=`(cat /tmp/cygwin/cygwin/home/67642360/1.0.94/db/src/sql/oracle/updates/${line})`
cat '/tmp/cygwin/cygwin/home/67642360/1.0.94/db/src/sql/oracle/updates/'${line}
答案1
如果正如您所说 $line 包含您想要输出的文件的名称,您可以简单地cat
(或more
或less
) 该变量。如cat $line
即使文件名包含空格也能起作用的更安全的方法是 cat "$line"
你应该确保你知道完整路径和相对路径因为如果混淆这两者,你就不太可能得到想要的结果。
答案2
来自 cat 的变量赋值:
content=$(cat /tmp/cygwin/cygwin/home/67642360/1.0.94/db/src/sql/oracle/updates/${line})
# Or
content=`cat /tmp/cygwin/cygwin/home/67642360/1.0.94/db/src/sql/oracle/updates/${line}`
从变量中 cat 文件:
cat /tmp/cygwin/cygwin/home/67642360/1.0.94/db/src/sql/oracle/updates/${line}
# OR
cat "/tmp/cygwin/cygwin/home/67642360/1.0.94/db/src/sql/oracle/updates/${line}"
答案3
什么是${line}
?
你能试一下echo ${line}
吗 ?
您使用的是什么 shell?您可以将其设置line
为有效的文件名。在此示例中,我使用的是 bash。
foo$ echo ${line}
foo$ echo "Hello World" > /tmp/foo.txt
foo$ export line=foo.txt
foo$ echo ${line}
foo.txt
foo$ cat /tmp/${line}
Hello World
foo$