Linux sh中没有这样的文件或目录错误,但该文件存在吗?
我正在运行一个命令,使用.shbash脚本检索日志文件的位置 呼应它打印:Linux sh中没有这样的文件或目录错误,但该文件存在吗?,linux,bash,ubuntu,Linux,Bash,Ubuntu,我正在运行一个命令,使用.shbash脚本检索日志文件的位置 呼应它打印: echo $rig /root/.forever/1cFY.log 但是当我试图读取这样存在的文件时: less $rig 我得到: /root/.forever/1cFY.log: No such file or directory 但是,如果我在没有.sh脚本的情况下手动输入文件名,它会工作 有什么想法吗?看起来您已经将grep配置为输出颜色。只需放下grep并使用awk: rig=$(forever list
echo $rig
/root/.forever/1cFY.log
但是当我试图读取这样存在的文件时:
less $rig
我得到:
/root/.forever/1cFY.log: No such file or directory
但是,如果我在没有.sh脚本的情况下手动输入文件名,它会工作
有什么想法吗?看起来您已经将grep配置为输出颜色。只需放下grep并使用awk:
rig=$(forever list | awk '/server.*root.*\.log/{print $8}')
strace-f less$rig可以帮助您找到发生了什么我以sudo sut的形式运行它输出为:execve/usr/bin/less、[less、\33[35m/root/.forever/1cFY.log\33[39…],[/*21 vars*/]=0似乎awk也在输出颜色,得到相同的错误更可能是转义序列来自永久。这就完成了->rig=$forever list | awk'/server.*root.*\.log/{print$8}'| sed-rs/\x1B\[[0-9]{1,2};[0-9]{1,2}.[m | K]//g@user3490755:您不能永远配置吗?我不知道这是什么,所以它不会首先打印这些转义序列?默认情况下,grep with-color仅当其标准输出是附加到TTY自动模式时才会输出颜色
rig=$(forever list | awk '/server.*root.*\.log/{print $8}')