gpt4 book ai didi

linux - 将路径参数传递给 bash

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:08 30 4
gpt4 key购买 nike

我将以下 bash 脚本保存为文件夹 ~/Softwares/sbt/sbt.sh 下的 sbt.sh:

#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
echo $@
java $SBT_OPTS -jar '$1'/sbt-launch.jar "$@"

我试图从我的 .bash_profile 中调用它:

source ~/Softwares/sbt/sbt.sh ~/Softwares/sbt/sbt-0.13.11/bin

当我运行终端时,出现以下错误:

Error: Unable to access jarfile $1/sbt-launch.jar

问题是为什么我没有看到作为参数传递给 bash 文件的路径?

编辑:我尝试创建一个别名如下:

alias sbt='sh /Users/joe/Softwares/sbt/sbh.sh'

当我尝试从终端运行 sbt 时,我得到以下信息:

sh: /Users/joe/Softwares/sbt/sbh.sh: No such file or directory

最佳答案

如果您删除 $1 附近的 ',它应该正确替换:

#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
echo $@
java $SBT_OPTS -jar $1/sbt-launch.jar "$@"

然而,上面的参数被传递了下来。我想修剪到 sbt 目录的路径,只传递剩余的参数:

#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
echo $@
SBT_PATH=$1
shift
java $SBT_OPTS -jar $SBT_PATH/sbt-launch.jar "$@"

关于linux - 将路径参数传递给 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507154/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com