我有这个bash脚本,我想在同一目录中调用一个文件:
mBinding.fragSocailmediaShareFb.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
CM.setSp(getActivity(), CV.SOCIALMEDIA_FB_ID, loginResult.getAccessToken().getUserId());
ShareOnFB();
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
if (CM.getSp(getActivity(), CV.SOCIALMEDIA_FB_ID, "").toString().length() > 0) {
ShareOnFB();
} else {
mBinding.fragSocailmediaShareFb.performClick();
}
无论如何,我可以摆脱相对路径或做得更好。
我需要在正确的目录中通过yarn
调用npm脚本答案 0 :(得分:0)
您可以使用以下命令获取脚本目录的绝对路径:
ABSOLUTE_PATH_OF_SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
这样,在调用cd
之前,您可以避免yarn build
到脚本的另一个目录。获得绝对路径后,您可以将source
次调用转换为绝对值并删除cd
行,例如
source "$ABSOLUTE_PATH_OF_SCRIPT"/script/main
source "$ABSOLUTE_PATH_OF_SCRIPT"/../../script/test
cd "$ABSOLUTE_PATH_OF_SCRIPT"/../../packages/applicant
yarn build
虽然就个人而言,相对路径方法感觉更具可读性。目前尚不清楚source
语句的目的是什么,并且根据内部结构,它们可能要求您实际cd
到初始脚本中的那些目录,但是您可以跟踪脚本的目录在一个变量中,如本例所示,以提高可读性。