Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux主目录中创建并执行shell脚本_Linux_Shell - Fatal编程技术网

在Linux主目录中创建并执行shell脚本

在Linux主目录中创建并执行shell脚本,linux,shell,Linux,Shell,我想在我的主目录(/home/user)中创建(并执行)一个shell脚本 已尝试以下方法: printf "cd /mypath\n" > myShortcut.sh chmod +x myShortcut.sh sh myShortcut.sh 我哪里做错了 (我正在尝试设置快捷方式以导航到其他目录)这里到底出了什么问题?脚本执行后,您是否仍在/home/user中?这是因为执行脚本会创建一个子shell,在脚本结束后返回到父shell。因此,您的cd在您当前的shell中无效。这里

我想在我的主目录(/home/user)中创建(并执行)一个shell脚本

已尝试以下方法:

printf "cd /mypath\n" > myShortcut.sh
chmod +x myShortcut.sh
sh myShortcut.sh
我哪里做错了


(我正在尝试设置快捷方式以导航到其他目录)

这里到底出了什么问题?脚本执行后,您是否仍在/home/user中?这是因为执行脚本会创建一个子shell,在脚本结束后返回到父shell。因此,您的cd在您当前的shell中无效。

这里到底出了什么问题?脚本执行后,您是否仍在/home/user中?这是因为执行脚本会创建一个子shell,在脚本结束后返回到父shell。因此,您的cd在您当前的shell中没有任何效果。

由于另一个答案所述,这将不起作用。脚本在子shell中运行

对于这样的快捷方式,您可以设置别名,编辑主目录中的.bashrc文件,并添加一行,如

别名快捷方式=“cd/mypath”

将“快捷方式”替换为您想要的名称,并将mypath替换为您想要的路径。 重新启动外壳(关闭终端并重新打开或w/e),这将按照您的需要工作。
然后,您可以在shell中的任何位置使用“快捷方式”。

因为另一个答案是这样的,所以这不起作用。脚本在子shell中运行

对于这样的快捷方式,您可以设置别名,编辑主目录中的.bashrc文件,并添加一行,如

别名快捷方式=“cd/mypath”

将“快捷方式”替换为您想要的名称,并将mypath替换为您想要的路径。 重新启动外壳(关闭终端并重新打开或w/e),这将按照您的需要工作。
然后,您可以在shell中的任何位置使用“快捷方式”。

如果要在当前shell中执行脚本(与在子shell中相反),请使用
(或
)命令:

然后,应按预期更改目录


此外,源代码还允许您在当前shell中设置和更改环境变量——这本身就是一个非常常见的问题:-)

如果要在当前shell中执行脚本(与在子shell中相反),请使用
源代码>(或
)命令:

然后,应按预期更改目录


此外,寻源还允许您在当前shell中设置和更改环境变量——这本身就是一个非常常见的问题:-)

这里似乎没有什么问题。。。在另一个shell实例中由主shell分叉的脚本工作..是的-我知道我现在哪里出错了-已经更新了问题以显示我的最终意图,应该首先这样做!另一方面,如果以
sh myShortcut.sh
(或者,如回答中所建议的,
source myShortcut.sh
)的方式运行命令,则不需要使用
chmod设置执行位。这里似乎没有什么问题。。。在另一个shell实例中由主shell分叉的脚本工作..是的-我知道我现在哪里出错了-已经更新了问题以显示我的最终意图,应该首先这样做!另一方面,如果以
sh myShortcut.sh
(或者,如答案中所建议的,
source myShortcut.sh
)的方式运行命令,则不需要使用
chmod
设置执行位。这正是我的难题+这正是我的难题+1用于解释“快捷方式”或您如何命名别名。。。替换为“快捷方式”,而不是别名谢谢-已经这样做了-那么我如何“使用”快捷方式?已经尝试直接在shell中键入“快捷方式”(使用我的ref),但我得到了“未找到”…请记住重新启动shell,如果它不起作用,您没有将其放置在正确的位置“快捷方式”,或者您以任何方式命名别名。。。替换为“快捷方式”,而不是别名谢谢-已经这样做了-那么我如何“使用”快捷方式?已经尝试直接在shell中键入“快捷方式”(使用我的引用),但我得到了“未找到”…请记住重新启动shell,如果它不起作用,您没有将它放在正确的位置这对我不起作用:-无法打开[没有这样的文件或目录]明白!!需要键入:source./myShortcut.sh这对我不起作用:-无法打开[没有这样的文件或目录]明白了!!需要键入:source./myShortcut.sh
 source myShortcut.sh