【问题标题】:Execute Script using an Alias使用别名执行脚本
【发布时间】:2013-01-18 21:23:53
【问题描述】:

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

所以。我进入了我的 bashrc 文件并添加了一个别名 别名 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 &

【问题讨论】:

    标签: linux bash shell alias


    【解决方案1】:

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

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

    【讨论】:

    • 所以启动的java应用程序指定了完整路径。当我从我输入的目录中运行脚本时。/我想当我尝试从不同的目录运行时,我可以只输入 /usr/local/etc 到没有点的脚本并且它具有相同的效果?但是,如果我在不输入 ./ 的情况下运行脚本,它仍然会给我想要的结果(如果从它所在的目录运行)
    • 尝试在应用程序调用之前在脚本中添加cd /usr/local/bin - 如果不是调用本身失败,则可能是 Java 应用程序正在运行,但对导致它的当前目录有一些依赖性默默地失败。如果您可以编辑帖子以显示调用应用程序的行,那可能会有所帮助。
    【解决方案2】:

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

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

    ./application
    

    除非您从/usr/local/bin 调用,否则这将失败。修复会是这样的

    application
    

    【讨论】:

    • 如果我这样做,我可以调用脚本,但它仍然不会给我想要的结果,(正在启动的应用程序)就像我从目录运行脚本时所做的那样住在
    • 我已经添加了脚本,你的答案改变我有点困惑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2017-06-16
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多