首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >相对于另一个用户的主目录执行脚本

相对于另一个用户的主目录执行脚本
EN

Stack Overflow用户
提问于 2018-06-10 06:27:50
回答 1查看 781关注 0票数 -2

我是Linux脚本的初学者。不知何故,我找不到正确的搜索字符串来找到答案。

我想运行一个与特定用户目录相关的脚本,如下所示:

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

但我不知道"~user“会翻译成什么。它甚至可能包含空格。我应该引用它吗?如果是这样,又是如何做到的呢?当我尝试使用引号时,我总是得到文件或文件夹不存在的错误。

编辑

我想这不是复制品。

我担心的是用引号运行以下代码:

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

出现“找不到文件或文件夹”错误。但我不知道~user会翻译成什么。(该脚本将在许多不同的计算机上调用。用户名是给定的,但主目录可以由每台计算机的所有者自由更改。)所以我很害怕(作为一个Linux脚本初学者!)要运行它而不使用引号,例如:

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

被否决最多的答案(Java system properties and environment variables)实际上对我帮助最大。我只需要确认它在Linux上是否以同样的方式工作。因此,我在VirtualBox中安装了一个测试虚拟机,并尝试:

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

它成功了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 07:30:55

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

ls ~user

将导致/dir带有空格/user/然后

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

将会是

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

如果您相应地在script.sh上设置了execution标志,则会执行此操作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50779050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档