我想用 运行我的代码
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
&
如果需要将命令作为异步作业(“后台作业”)运行,请在命令末尾添加。
关于实际脚本,请参阅什么时候需要双引号?