首页 > 系统相关 >在shell脚本中定位自己的位置

在shell脚本中定位自己的位置

时间:2022-10-31 09:14:33浏览次数:43  
标签:脚本 定位 shell PHARO image 位置 Pharo DIR

有时候,出于方便,需要给某些第三方软件编写启动脚本。这些第三方软件可能打包了自己所需要的库,只有通过相对路径才能访问这些库。这就需要在启动脚本中探测软件的根目录,使得可以从系统中的任何位置运行命令而不会找不到运行库。

以Pharo为例,Pharo需要在命令行中传递 image 参数:

#!/bin/bash

DIR=$(dirname $(readlink -f $0))
PHARO="$DIR/pharo-ui"
IMAGE="Pharo.image"

exec $PHARO $DIR/$IMAGE $@

readlink -f $0 可以正确处理软链接,哪怕脚本被链接到其它位置,它也能获得脚本真实的位置。
最后的 $@ 参数将所有的命令行参数全部传递给原始程序。

标签:脚本,定位,shell,PHARO,image,位置,Pharo,DIR
From: https://www.cnblogs.com/zh-geek/p/16843098.html

相关文章

  • CSS的fixed定位失效
    MDN中对于fixed定位的解释:元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印......
  • shell之免交互
    一、HereDocument免交互1、概念HereDocument使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如ftp、cat或read命令。是标准输入的一种替代品可以帮助脚......
  • 使用SOUI4的脚本模块
    SOUI4.1提供了全新的lua脚本模块支持,使用这个新版本的脚本模块,可以轻松将所有UI布局及业务逻辑全部使用XML+LUA实现,基本上就是一个超轻型浏览器。SOUI4.0相对于SOUI3最大......
  • shell编程之循环语句 for
    1什么是循环凡是重复执行一段代码,都可以称之为循环。循环体中三种专业的话术:遍历、迭代、递归。遍历(traversal)-按规则访问非线性结构中的每一项。迭代(itera......
  • shell编程之条件语句(条件测试、if语句、case语句)
    要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0......
  • Shell脚本2
    前言shell变量的类型:自定义变量:由用户自己定义,修改和使用环境变量:由系统维护,用于设置工作环境只读变量:只可以读取不可以更改位置变量:通过命令行给脚本传递参数预定......
  • Linux shell编程
    建立文件:第一行#!/bin/bash标识该Shell脚本由哪个Shell解释:#!/bin/bashecho"HelloWorld!"shell中的变量:shell中的变量⑴常用系统变量$#:保存程序......
  • 可重定位文件
    可重定位文件介绍目标文件是可重定位文件,可以根据链接脚本把section内的代码映射到实际运行的地址。     .line:原始C源程序中的行号和.text节中机器指令之间......
  • 比Xshell 还好用的 SSH 客户端神器
    个人试用后的确好用界面也还凑合,主要是解决了crt的长连接问题推荐链接:https://mp.weixin.qq.com/s?__biz=MzU2NDc4MjE2Ng==&mid=2247493070&idx=3&sn=531a178d919516a0ef......
  • PowerShell基础
    PowerShell基础目录PowerShell基础1PowerShell简介2基本概念2.1.ps1文件2.2执行策略2.3运行脚本2.4管道3PowerShell常用命令3.1文件操作类命令3.2绕过本地权......