gpt4 book ai didi

linux - 无法从 shell 脚本中更改目录

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:35 24 4
gpt4 key购买 nike

我想编写一个 shell 脚本,在其中更改目录,然后在该目录中执行命令。为什么我无法更改目录?每当我这样做时它都不起作用:

#!/bin/bash

cd /something/something

我做错了什么?/丹尼尔

最佳答案

当您运行 shell 脚本时,会创建一个新的 shell。因此,当 shell 脚本退出 shell 时,正在运行的脚本将被销毁,从而返回到当前的 shell。这可能是一件好事,因为在某些 shell 脚本中,您正在创建大量变量和此类性质的内容,您不希望这些变量和内容在脚本执行完成后潜伏在周围。

由于 shell 脚本 shell 被吹走并且您返回到原始 shell,目录的更改将不会反射(reflect)在您正在使用的交互式 shell 中。

有一个名为 source 的命令,它会在当前 shell 中执行 shell 脚本,因此会在当前 shell 中 cd 并在脚本中进行任何其他更改,直到退出当前 shell。

但是,如果在您使用的脚本中创建新 shell 时根本没有发生 cd,则这可能是由于目录上的文件权限造成的。如果某个目录设置了 chmod -x 无执行权限,则您无法 cd 进入该目录,因为您需要对目录具有执行权限才能进入该目录。

关于linux - 无法从 shell 脚本中更改目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com