WSL Ubuntu22.04运行CMU15-213 Shell Lab测试时sdriver.pl找不到的解决办法
问题场景
- 环境:WSL Ubuntu 22.04,CMU 15-213 Shell Lab 实验环境
- 操作:执行
make test01命令测试自定义Shell - 错误提示:
./sdriver.pl: not found - 已完成操作:将
/usr/bin/perl添加到$PATH环境变量
快速修复命令
直接执行以下命令,覆盖最常见的问题:
- 给测试脚本添加执行权限:
chmod +x sdriver.pl - 修正脚本的shebang行(确保指向正确的perl路径):
sed -i '1c #!/usr/bin/perl' sdriver.pl - 若脚本是Windows换行格式,转换为Unix格式:
sudo apt install dos2unix && dos2unix sdriver.pl - 手动执行测试(绕过Makefile调用问题):
perl sdriver.pl -t trace01.txt -s ./mysh -a "-p"
详细排查步骤
如果快速修复无效,按以下步骤逐一排查:
- 确认脚本存在:执行
ls -l sdriver.pl,检查输出中是否有该文件 - 检查perl安装状态:执行
which perl,确认输出为/usr/bin/perl,若为空则安装perl:sudo apt install perl - 查看Makefile调用逻辑:打开Makefile,确认调用sdriver.pl的语句是否为
./sdriver.pl,若脚本路径错误则修正 - 验证脚本可执行性:直接执行
./sdriver.pl,查看具体错误(若提示Permission denied则是权限问题;若提示No such file or directory可能是shebang错误或换行格式问题)
内容的提问来源于stack exchange,提问作者Ni Jiasheng
相关产品推荐
相关产品推荐

