在FreeBSD 9.3
上,我尝试在.
用户(root @ myserver#)上使用了dot命令(root
),但收到了以下错误:
> .: Command not found.
但是,作为'非root用户'(#)用户,它运行正常!发生了什么事?
$ PATH - 我指向/ root现在,我在ec2上测试freebsd 9.3 dot命令(。)是可行的,但在virsualbox上构建服务器目标无法找到 谢谢高级!
我通过使用'su username_root_login'来解决,并且点命令(。)完美地工作。
所以我会关闭这个问题谢谢大家解决我的问题+语法格式
答案 0 :(得分:1)
.
(“点”)命令内置于Bourne shell(sh
)和从中派生的shell(bash
,ksh
,{{1等等)。它从指定的文件中读取和执行命令。与将文件作为脚本执行不同,zsh
在当前shell进程的上下文中执行命令。在某些shell中,.
相当于source
。
.
及其派生csh
不将tcsh
作为内置命令。它们确实有一个等效的.
命令 - 但这不太可能是一个解决方案,因为source
或. filename
执行当前shell进程中的命令 ,并且命令必须对当前shell有效。 source filename
和sh
对于一些简单的命令是相似的,但对于任何复杂的(csh
语句,循环,某些I / O重定向等),它们都实现了不兼容的语言。如果您要使用if
从sh
或bash
执行脚本,则无法从. filename
或csh
执行,甚至使用tcsh
。
您可能收到错误,因为source filename
帐户的默认shell是root
或/bin/csh
(我认为这是基于BSD的系统的典型情况)。您自己的非/bin/tcsh
帐户可能有一些基于Bourne的shell作为其默认值。通过在提示符下键入root
,您可以找到默认shell的内容。
在我的系统上,当我尝试使用echo $SHELL
或. filename
提示符中的csh
时,我收到了不同的错误消息,但您的版本可能会有不同的行为。
这就解释了为什么你会收到错误。它没有告诉你如何解决它,但你还没有给我们足够的信息。如果您确实需要获取文件,则必须运行与该文件中的命令兼容的shell。您可能需要从root shell提示符执行,例如tcsh
,然后使用/bin/bash
命令。但是没有更多的信息,我无法分辨这是否有意义。
您尝试使用哪种脚本?该怎么办?你确定它需要采购而不是执行吗?