3

我正在尝试创建一个将执行脚本的别名。当我 cd 进入脚本所在的目录时...假设 /usr/local/bin/startscript 然后脚本按预期运行并启动我想要的应用程序。

所以。我进入了我的 bashrc 文件并添加了一个别名 alias startscript='/usr/local/bin/startscript'

目标是能够通过简单地从任何目录键入“startscript”来运行脚本。

但是,当我尝试使用别名来运行脚本时,它不能正常工作,因为应该启动的应用程序不能。

我的脚本以

#!/bin/sh

然后从那里去

有任何想法吗?谢谢

脚本:

#!/bin/sh

#- Check for user 'user'
if [[ "`whoami`" != "user" ]]; then
  echo "This script can only be executed by user 'user'."; exit
fi

. /usr/local/bin/etctrx/startscriptdirectory/startscriptsetup

#- Kill manager to avoid multiple processes
pkill -f 'JavaApp.jar'

#- Start
nohup java -classpath /usr/local/bin/etctrx/startscriptdirectory/RequiredJars/ojdbc5.jar:/usr/local/bin/etctrx/startscriptdirectory/RequiredJars/activation.jar:/usr/local/bin/etctrx/startscriptdirectory/RequiredJars/mail.jar -jar /usr/local/bin/etctrx/startscriptdirectory/JavaApp.jar > ${JAVAAPPLOGS}/startscript.log 2>&1 &
4

2 回答 2

1

如果脚本在 /usr/local/bin 中通过简单地键入按预期运行startscript,但从另一个目录运行脚本(不返回错误),但没有产生所需的结果,那么问题在于您如何引用脚本中的应用程序。

正如其他人所指出的那样,您不需要为其中的某些内容设置别名,/usr/local/bin如果它从该目录运行,显然您的可执行权限也是正确的。如果您尝试运行的应用程序也在其中,/usr/local/bin那么您的脚本可能会假定它在同一个目录中,而在其他地方不会出现这种情况,因此您需要在脚本中添加 acd/usr/local/bin指定完整的应用程序路径.

于 2013-01-18T21:39:10.983 回答
0

如果我这样做,我可以调用脚本,但它仍然不会给我想要的结果,(应用程序正在启动)就像我从它所在的目录运行脚本时所做的那样

看起来有问题的“应用程序”与脚本位于同一目录中/usr/local/bin,我们已经建立的脚本已经在您的PATH. 让脚本正确运行而不是应用程序运行意味着您可能错误地调用了应用程序,例如

./application

除非您从/usr/local/bin. 修复会是这样的

application
于 2013-01-18T21:28:16.493 回答