相对于另一个用户的主目录

时间:2018-06-09 22:27:50

标签: linux bash

我是Linux脚本编程的初学者。不知怎的,我无法找到正确的搜索字符串来找到答案。

我想运行一个相对于特定用户目录的脚本,如:

〜用户/相对/路径/到/ script.sh

但我不知道"〜用户"将转化为。它甚至可能包含空格。我应该引用它吗?如果是这样,怎么样?当我尝试使用引号时,我总是得到文件或文件夹不存在错误。

修改

我认为这不是重复。

我担心的是用引号运行以下内容:

"〜用户/相对/路径/到/ script.sh"

给我"找不到文件或文件夹"错误。但我不知道,用户将转化为什么。 (该脚本将在许多不同的计算机上调用。给出了用户名,但每个计算机的所有者可以自由更改主目录。)所以我害怕(作为Linux脚本BEGINNER !!!)运行它没有引号像:

〜用户/相对/路径/到/ script.sh

最低调的答案(由Cpt_Jauchefuerst提供)实际上对我帮助最大。我只需要确认它在Linux上的工作方式是否相同。所以我在VirtualBox中安装了一个测试VM并尝试:

cd /
sudo mkdir -p "test home dir/myuser"
sudo adduser myuser
sudo chown myuser:myuser "test home dir/myuser"
sudo usermod -d "/test home dir/myuser" myuser
su myuser
cd ~
echo '#!/bin/bash -x
  echo "here!"
' > test.sh
chmod +x test.sh 
exit
cd /
~myuser/test.sh

感谢Cpt_Jauchefuerst!

1 个答案:

答案 0 :(得分:-1)

在Mac OS上,您不需要引用。我不确定Linux。但是,如果

ls ~user

将导致/ dir with space / user / then

sh ~user/rel/path/to/script.sh

将是

sh /dir\ with\ space/user/rel/path/to/script.sh

如果你在script.sh上相应地设置了执行标志,那么就会执行。