nohup:无法执行“display_files.sh”:没有这样的文件或目录

nohup:无法执行“display_files.sh”:没有这样的文件或目录

我想用 运行我的代码 nohup shellskriptname &。但每当我尝试查看该文件时nohup,它都会说没有这样的文件。我能做什么,才能这样输入?

#!/usr/bin/bash
# To Display Files and Folders from current Directory

echo Displaying all the Directories in the current directory

for item in *
do
        if [ -d $item ]
         then
                echo $item
        fi
done

echo Displaying all the Files in the current directory

for item in *
do
        if [ -f $item ]
        then
                echo $item
        fi
done

答案1

无论您运行脚本时是否带有nohup,shell 都会尝试在 中列出的目录中查找指定的命令(您的脚本)$PATH。除非您使用目录路径(绝对或相对)指定脚本名称,否则它将执行此操作。

从我当前的 FreeBSD 系统的手册中nohup,关于该实用程序对环境变量的使用PATH

PATH
如果名称不包含/ 字符,则用于查找所请求的实用程序。

这意味着,就像 shell 一样,如果命令不包含目录路径,nohup则会查找给定的实用程序。$PATH

因此,如果您的脚本shellskriptname位于当前目录中,并且当前目录不是 中的目录之一$PATH,则只需使用

shellskriptname

或者

nohup shellskriptname

会按照你描述的方式失败。

相反,给出脚本的路径:

nohup ./shellskriptname

&如果需要将命令作为异步作业(“后台作业”)运行,请在命令末尾添加。

关于实际脚本,请参阅什么时候需要双引号?

相关内容