将目录存储为变量以供以后在linux脚本中使用

jsj*_*ooo 8 linux bash

在我的脚本中,我将文件的位置(路径)作为变量.

例如,fileA

其内容的一个例子是

的fileA =的/ usr/anotherfolder/somefold/"filenamehere"

但是,当我在脚本中调用文件上的命令时,例如:

cat $ fileA

要么

猫"$ fileA"

我收到一条错误消息,说文件或目录不存在.如果我回显$ fileA以查看输出是什么,然后从终端手动运行cat,它工作正常,不知道出了什么问题.有帮助吗?

一些调试信息:

  • 的fileA = '/家庭/雅各布/桌面/ CS35L/WORK/2/HW/TEST3/"新"'
  • echo'/ home/jacob/Desktop/CS35L/WORK/2/hw/test3 /"new"'/ home/jacob/Desktop/CS35L/WORK/2/hw/test3 /"new"
  • '[''!' -r'/ home/jacob/Desktop/CS35L/WORK/2/hw/test3 /"new"'']'

对于这些特定的线

检查可读文件

echo $fileA
if [ ! -r "$fileA" ]
then
    o=`expr $o + 1`
    echo "$fileA not readable."
    continue    
fi
Run Code Online (Sandbox Code Playgroud)

kev*_*kev 10

如果文件名是new(不是"new"),则更改

fileA='/home/jacob/Desktop/CS35L/WORK/2/hw/test3/"new"'
Run Code Online (Sandbox Code Playgroud)

fileA=/home/jacob/Desktop/CS35L/WORK/2/hw/test3/new
Run Code Online (Sandbox Code Playgroud)