相关疑难解决方法(0)

为什么"cd"不能在shell脚本中工作?

我正在尝试编写一个小脚本来将当前目录更改为我的项目目录:

#!/bin/bash
cd /home/tree/projects/java
Run Code Online (Sandbox Code Playgroud)

我将此文件保存为proj,添加了执行权限chmod,并将其复制到/usr/bin.当我通过以下方式调用它时 proj,它什么都不做.我究竟做错了什么?

linux shell

735
推荐指数
18
解决办法
59万
查看次数

如何在bash中手动扩展一个特殊变量(ex:~tilde)

我的bash脚本中有一个变量,其值如下所示:

~/a/b/c
Run Code Online (Sandbox Code Playgroud)

请注意,它是未扩展的波形符号.当我对这个变量执行ls -lt(称之为$ VAR)时,我没有这样的目录.我想让bash解释/扩展这个变量而不执行它.换句话说,我希望bash运行eval但不运行evaluate命令.在bash中这可能吗?

我是如何在不扩展的情况下将其传递到我的脚本中的?我用双引号传递了围绕它的论点.

试试这个命令看看我的意思:

ls -lt "~"
Run Code Online (Sandbox Code Playgroud)

这正是我所处的情况.我想要扩展代字号.换句话说,我应该用什么来代替魔法来使这两个命令相同:

ls -lt ~/abc/def/ghi
Run Code Online (Sandbox Code Playgroud)

ls -lt $(magic "~/abc/def/ghi")
Run Code Online (Sandbox Code Playgroud)

请注意〜/ abc/def/ghi可能存在也可能不存在.

bash scripting tilde tilde-expansion

120
推荐指数
7
解决办法
7万
查看次数

标签 统计

bash ×1

linux ×1

scripting ×1

shell ×1

tilde ×1

tilde-expansion ×1