如何向Bash函数添加选项
发布时间:2020-12-15 18:34:25 所属栏目:安全 来源:网络整理
导读:我是 linux新手(使用Ubuntu 10.10),我想在.bashrc中添加一个启动/停止tomcat服务器的函数.我正在尝试解析命令“tomcat”的两个选项.我已经在各种排列中尝试了以下内容,但它们都不起作用. export CATALINA_HOME=/tomcat/directoryfunction tomcat { if [$1 =
我是
linux新手(使用Ubuntu 10.10),我想在.bashrc中添加一个启动/停止tomcat服务器的函数.我正在尝试解析命令“tomcat”的两个选项.我已经在各种排列中尝试了以下内容,但它们都不起作用.
export CATALINA_HOME=/tomcat/directory function tomcat { if [$1 = "-s" ]; then `sh $CATALINA_HOME/bin/startup.sh` elif [$1 = "-x"]; then `sh $CATALINA_HOME/bin/shutdown.sh` else echo "Enter '-s' to start Tomcat,'-x' to shutdown." fi } 为什么这不起作用?什么是正确的方法呢? 谢谢!
将所有内容放在一起,我认为这段代码适合您:
export CATALINA_HOME=/tomcat/directory function tomcat { if [ "$1" = "-s" ]; then sh $CATALINA_HOME/bin/startup.sh elif [ "$1" = "-x" ]; then sh $CATALINA_HOME/bin/shutdown.sh else echo "Enter '-s' to start Tomcat,'-x' to shutdown." fi } 您的版本的重要更改: >删除了启动和关闭命令的反引号 关于bash语法和安全性的一些注意事项: > function tomcat {相当于tomcat(){>正如@ooshro指出的那样,在[之后 – 如果有疑问的话,将它放出来之后需要一个空格>在比较中,你应该更喜欢= over ==,因为single-equals是其他shell使用的标准>总是用双引号括起变量(如$1),特别是在比较语句中,或者任何将它们排除在外会导致问题的地方> @ ooshro的案例语法是一种更简洁的方法来处理这个问题,但是如果你打算在将来使你的代码更加复杂,它可能会不那么灵活> backquotes捕获命令的输出,然后将其替换为脚本,所以如果用反引号包围整行,bash将执行该行,然后尝试执行输出,这很少是你可能想要的>你不需要这个脚本的反引用功能,但是当你这样做时,我建议使用$(…)语法,因为它是可嵌套的,在我看来更容易阅读和理解 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- twitter-bootstrap – bootstrap进度条没有动画
- WebService开发实例 (Xfire+Spring+Hibernate)
- 关于bootstrap模版Bootstrapper的问题
- bash – 用于查找unix中是否存在目录的循环
- 调用组件函数时,self.context不是Angular2中的函
- 异步 – 角度2 – 从承诺显示异步对象数据
- shell 学习二十一天---重新格式化段落
- angularjs – 为什么使用if(!$scope $$phase)$s
- docker – 可以修复STATUS“退出(-1)”的容器吗
- scala – 何时使用call-by-name和call-by-value?
热点阅读