如果我从 samba 共享启动 shell 脚本“test.sh”,则会收到错误:
bash: ./test.sh: /bin/sh: Defekter Interpreter: Eingabe-/Ausgabefehler
(bash:./test.sh:/bin/sh:错误的解释器:输入/输出错误)
脚本未执行。
我的脚本:
#!/bin/sh
echo "test"
如果我在本地驱动器上执行相同操作,则没有问题,它可以正常执行。
该共享安装在fstab中:
//192.168.1.15/Netdrive /home/measuser/Netdrive cifs noauto,rw,exec,users,file_mode=0777,dir_mode=0777,credentials=/home/measuser/.config/.smb-cred 0 0
如果我在网络驱动器上使用“/bin/sh ./test.sh”或“/bin/sh /home/measuser/Netdrive/test.sh”,一切都正常。
我该怎么做才能解决这个问题?
我的系统:
Operating System: Ubuntu Studio 22.04
KDE Plasma Version: 5.24.7
KDE Frameworks Version: 5.92.0
Qt Version: 5.15.3
Kernel Version: 6.5.0-26-lowlatency (64-bit)
Graphics Platform: X11
Processors: 16 × 13th Gen Intel® Core™ i7-13700K
Memory: 62.5 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3060/PCIe/SSE2
答案1
据我观察,Windows(至少是 XP)有一个称为存档位的功能,当文件被修改时,该功能处于打开状态。它可以关闭,并且一些备份程序在制作备份副本时会彻底关闭这些存档位(例如 Nero CD 刻录软件)。
至少在我的环境中,该存档位似乎与 ubuntu 环境中的执行位相同。
想想在真正的 Windows(XP)系统上切换此位的 DOS attrib 命令。