"open | $filex" 无法仅在 windows 上执行现有文件
"open | $filex" couldn't execute existing file on windows only
下面的代码:
set filex "./run.sh"
if {[file exist $filex]} {
puts "File exist!"
}
if {[catch {open |$filex r} pipe]} {
puts "pwd = [pwd]"
puts "ERROR: $pipe"
}
returns 后续消息:
File exist!
pwd = F:/
ERROR: couldn't execute ".\run.sh": no such file or directory
问题在 linux OS 中不存在(脚本通常是 运行),仅在 Windows 中出现(也在 CygWin 上)。该文件的权限是:777。OS?
两者的任何通用解决方法
我通过在“|”后添加 bash 找到了解决此问题的方法字符:
if {[catch {open "|bash $filex" r} pipe]} {
下面的代码:
set filex "./run.sh"
if {[file exist $filex]} {
puts "File exist!"
}
if {[catch {open |$filex r} pipe]} {
puts "pwd = [pwd]"
puts "ERROR: $pipe"
}
returns 后续消息:
File exist!
pwd = F:/
ERROR: couldn't execute ".\run.sh": no such file or directory
问题在 linux OS 中不存在(脚本通常是 运行),仅在 Windows 中出现(也在 CygWin 上)。该文件的权限是:777。OS?
两者的任何通用解决方法我通过在“|”后添加 bash 找到了解决此问题的方法字符:
if {[catch {open "|bash $filex" r} pipe]} {