2013-12-17 34 views
0

我有一个Shell脚本文件。在它里面,我已经在放置sh文件的同一个文件夹中创建了一个文本文件。使sh可执行文件像在窗口中的exe文件一样

我想双击运行sh文件。当用户双击sh文件时,sh文件将被执行并且一个文本文件应该在相同的目录中生成。

我知道我可以使用使可执行文件:chmod +x myfile.sh 但问题是:

当我运行在其它机器或者同一台机器上这个文件用不同的 驱动,我需要再次执行。我想要在Windows中像“exe 文件”一样的行为。

+0

什么类型的文件系统,你要复制这个脚本,它失去了它的可执行位?尝试传递'tar'档案并从'tar'解压缩,这可能会保留这些位。 – woolstar

+0

woolstar @我正在使用Ubuntu 12.04。我在这台机器上生成可执行文件,并将它复制到pendrive上,当它从其他机器上的pendrive(我的朋友的机器 - Ubuntu 10.04)上运行时,它不起作用。 – Rickyrock

+0

笔式驱动器格式化为FAT吗?或ext3? – woolstar

回答

0

您能右键单击该文件并选择properties。选中Allow executing file as a program

+0

我也做过。但它不起作用。我需要通过终端和更改权限:chmod + x myfile.sh – Rickyrock

+0

如果它不工作。也许你正在执行的文件不是你当前用户所有的。尝试使用chown myfile.sh – vahnevileyes

1

如果将文件复制到其文件系统不支持Linux权限模型的驱动器,则将失去这些权限。解决方法是使用Linux友好的文件系统(重新格式化驱动器,使用例如ext2文件系统),但较少入侵的解决方法是将文件存储在确保权限的容器中(例如tar文件)并将其从到目标系统。

如果您需要支持只能学习用鼠标单击并拖动的用户,则只有第一个选项是可行的。

如果目标系统可以访问互联网,也许最简单的方法就是将文件放在服务器上,然后在文本棒上放一个带有下载URL的文本文件。

+0

trpleee @我也试过了。我把我的文件放在服务器上,并把链接下载。下载文件后,当我双击文件,进程仍在继续,但没有发生。 – Rickyrock

+0

如果我能解释你的描述,听起来像一个无关的问题。如果下载的文件具有正确的内容和正确的权限,我会建议我们在这里完成。 – tripleee