我怎么知道我使用的是哪个shell?

时间:2011-05-23 07:59:22

标签: linux shell

我正在编写一个shell脚本。我正在阅读的教程的第一行是这样的:

#!/usr/bin/env bash/

但它不适合我。 (error : no such directory

如何找出我正在使用哪种bash以及它位于何处?

感谢任何建议和帮助。

非常感谢。它现在有效

解决方案 #!/usr/bin/env bash

另一个问题:为什么它只是无法读取'重启'这个词

我在start.sh中的代码:

#!/usr/bin/env bash/
RESTART="apachectl restart"
$RESTART

我不行。

Usage: /usr/local/apache2/bin/httpd [-D name] [-d directory] [-f file]
                                [-C "directive"] [-c "directive"]
                                [-k start|restart|graceful|graceful-stop|sto                                                                             p]
                                [-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
-D name            : define a name for use in <IfDefine name> directives
-d directory       : specify an alternate initial ServerRoot
-f file            : specify an alternate ServerConfigFile
-C "directive"     : process directive before reading config files
-c "directive"     : process directive after reading config files
-e level           : show startup errors of level (see LogLevel)
-E file            : log startup errors to file
-v                 : show version number
-V                 : show compile settings
-h                 : list available command line options (this page)
-l                 : list compiled in modules
-L                 : list available configuration directives
-t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
-S                 : a synonym for -t -D DUMP_VHOSTS
-t -D DUMP_MODULES : show all loaded modules
-M                 : a synonym for -t -D DUMP_MODULES
-t                 : run syntax check for config files

为什么会那样?它似乎可以读取重启一词。

谢谢大家!我现在修好了。

解决方案:在unix中编辑文件(vim / nano以及Windows中的任何内容)

Thank again :)

6 个答案:

答案 0 :(得分:15)

另一种方式:echo $SHELL

答案 1 :(得分:4)

如果您从/移除bash/,则应该有效。

答案 2 :(得分:2)

您可以尝试以下命令

which bash

在一个shell。然后把

#!<the output of which bash>

答案 3 :(得分:0)

要找出bash的位置,请发出命令:

type bash

在您的命令提示符下。并确保脚本始终可以找到它:

#!bash

这个问题是可能会发现并使用其他一些bash,这可能是安全问题,但我已经这样做多年了。

答案 4 :(得分:0)

删除行尾的额外字符。不需要斜杠 dos2unix yourscript将删除不需要的CR。

#!/usr/bin/env bash

答案 5 :(得分:0)

实际上更好的是为您的重启问题打开一个新问题。 很可能你不在restart命令所在的目录 已定义或重新启动不在您的路径中。尝试整个路径。