在Linux主目录中创建并执行shell脚本
我想在我的主目录(/home/user)中创建(并执行)一个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中无效。这里
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