让我们举个例子,
scriptPath=/home/sharath/Downloads/atolic_TrueSTUDIO_for_STM32_9.2.0_安装程序
在上面的代码行中,如果用户是“sharath”,那么他可以以相同的方式访问一个文件/文件夹,如果用户不同,那么他可以如何动态地访问该文件夹/文件。
下面是我的shellscript(.sh文件):

#!/bin/bash
set -eu
configLocation=/etc/atollic
scriptPath=/home/sharath/Downloads/Atollic_TrueSTUDIO_for_STM32_9.2.0_installer
family=STM32
arch=x86_64
version=9.2.0
configFile=${configLocation}/TrueSTUDIO_for_${family}_${arch}_${version}.properties
installPath=/opt/Atollic_TrueSTUDIO_for_${family}_${arch}_${version}/
mkdir -p /opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.2.0/
tar xzf ${scriptPath}/install.data -C /opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.2.0/

在脚本的最后一行,${scriptPath}对于不同的用户是不同的,如何在shell脚本中处理。
更新1:
如果我使用${USER}或${HOME}或whoami返回“root”,
这是我的日志:
tar (child): /root/Downloads/Atollic_TrueSTUDIO_for_STM32_9.2.0_installer/install.data: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting now

更新2:
“根”中的当前用户

最佳答案

使用$HOME启动scriptPath,即:
scriptPath=${HOME}/Downloads/Atollic_TrueSTUDIO_for_STM32_9.2.0_installer

10-08 11:19