问题标签 [tilde-expansion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Bash 脚本 - ~/.ssh/ 中不存在文件
我正在尝试从以下位置复制文件: ~/.ssh/ 但每次我运行脚本时它都会说
复制bash.sh
有什么建议么?
谢谢
bash - 覆盖的 HOME 变量
我最近了解到 ~ 指的是 HOME 变量。因此,如果我设置 HOME=/foo 然后尝试使用想要 cd ~/Documents 的 bash 脚本,它最终会说:
foo/Documents:没有这样的文件或目录
在这种情况下,最佳做法是什么?崩溃并向用户抱怨他们覆盖了 HOME?或者有什么方法可以恢复 HOME 的默认值?
bash - 不能在 OSX 上将波浪号 (~) 用于 sed -i 备份字符:“sed: rename(): Not a directory”
在我的 OSX 机器上,我不能使用 ~ 作为就地 sed 的备份字符。任何其他角色都可以。我得到的错误是......神秘:rename(): Not a directory
。
例子:
swift - 我可以在 module.modulemap 中使用环境变量或波浪号吗?
我的module.modulemap
文件如下所示:
但是,我收到此错误:
当我使用不带波浪号的绝对路径时,它编译得很好,但是由于这将像这样分发给所有开发人员,我想使用波浪号。有什么方法可以使这项工作正常进行吗?
我还尝试在header
字符串中使用环境变量,但这也不起作用:
php - php中的波浪号和减号运算符
我找到了这行代码:
作为代码高尔夫的答案。我用谷歌搜索了波浪符号,我发现它是 2` 补码。
因此,如果是这样,为什么不简单地使用该-
符号。如果它们不是相等的符号,那么有什么区别?
bash - Bash 在 Cygwin 中以波浪号挂起
我今天遇到了一些奇怪的 Bash 行为,也许这是一个已经修复的错误,但我还是要问一下。
我在工作计算机上安装了 x64 Cygwin,其中装有 Bash 4.3.46。今天偶然,!533
我没有键入运行历史上的旧命令,而是键入了~533
. 那应该什么都没有显示,因为我有一个空的目录堆栈。
但相反,~n
似乎冻结了 Bash,对于任何数字n
。打开一个带有 Bash 的全新 MinTTY,键入~1
并按 Enter,Bash 就会消失在 la-la 的土地上。Ctrl+C、Ctrl+J、Ctrl+Z、Ctrl+anything 无法让您返回提示。您键入的字符会回显到控制台,这有点有趣,因为某些东西必须仍在回显它们。但是您无法恢复 shell,甚至无法正常关闭 MinTTY — 您必须强制终止 Bash 进程 ID。
值得注意的是dirs +1
,它应该相当于~1
(根据Bash 手册),工作得很好。
我可以在我的工作计算机上可靠地重现它。有趣的是,我家用电脑上的 Cygwin Bash 4.4.12 工作正常,所以这可能是他们在 4.4.x 中修复的 4.3.x 版本中的错误。如果是bug,我肯定会升级。
那么这种破碎的波浪号行为是一个错误吗?配置错误?有没有人遇到过这种行为?
haskell - Haskell 获取特定用户的主目录路径
我想创建一个函数来~user
使用该用户的主目录(通常/home/user/
)扩展表单的名称,包括~root
通常是/root/
. 我知道getHomeDirectory
获取当前用户主目录的方法,但我不知道确定给定用户主目录的任何函数。
至今
我有以下功能,它将~
任何文件路径中的前导替换为用户的主目录
我的理解是,getHomeDirectory
从环境变量中读取HOME
,以及其他主目录将更难获得,但我希望不是不可能或非常困难。
笔记
目前只对linux系统感兴趣;我知道 Windows 和 Mac 有完全不同的风格。
c++ - How to replace the home directory with a tilde? Linux
I'm currently making a shell in C++ and I've been able to output the absolute directory as the prompt with getcwd(), however when the user reaches the home directory I would like to output a tilde instead of the home directory.
So for example instead of
[bb@bbmachine bb]
I would like to output
[bb@bbmachine ~]
How would I do something like that?
bash - Tilde not expanded when quoting on the right hand side of a Bash variable assignment
I have made a directory ~/test_myDir
I then run the following bash script:
I get the following error:
I then remove the quotes from the second assignment:
The script runs without error.
What is going on here? I ran into this issue in a larger, more complicated script, and I narrowed it down to my use of quotes in a variable assignment that contained another variable.
Still, from the error message, it looks like the full path is being expanded correctly in the "cd" call.
bash - Bash 波浪号在某些参数中没有扩展,例如 --home_dir=~
Bash 没有扩展参数中的 ~ 字符--home_dir=~
。例如:
Bash 确实会扩展 ~ 当我省略连字符时:
为什么 Bash 有这种行为?这很烦人,因为当我将该路径指定为命令的参数时,没有扩展带有 ~ 的路径。