我正在编写一个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 :)
答案 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命令所在的目录 已定义或重新启动不在您的路径中。尝试整个路径。