无法在 Linux 下运行脚本
无法在 Linux 下运行脚本
cant run script in linux
Created: 2024-05-14T10:59+08:00
Published: 2024-05-15T11:19+08:00
Categories: Linux
Tags: Bug
打算在 wsl 中运行 Windows 文件中的 sh 文件,script.sh 内容为:
#!/usr/bin/sh cd ..
但是终端中执行 bash ./script.sh
,什么也没有发生。
排查了 shebang、line break、wsl 能否使用 Windows 文件系统等问题,最后终于找到原因。
原因
因为在 shell 的 child process 中 cd
了,当前 shell process 没有 cd
,可以参考 xv6 的 shell 的代码。
bash - Why can't I change directories using "cd" in a script? - Stack Overflow
这就是 source
命令的作用:在当前 shell 执行命令。
解决
. ./script.sh
气笑了
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/18193506
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本