复制文件的非常简单的脚本
#!/bin/bash
#copy file
mtp-getfile "6" test2.jpg
我将其设置为可执行文件并使用
运行它sudo sh ./test.sh
它给了我一个名为test2.jpg的文件没有图标我无法打开我得到'无法打开文件输入流'错误
但是,如果我只是从命令行发出以下内容
mtp-getfile "6" test2.jpg
它按预期工作。我的脚本出了什么问题?我检查过,每种情况下生成的.jpg文件都有相同的字节数。很奇怪。
答案 0 :(得分:0)
正如chepner评论的那样,你的文件可能有一个以其名字结尾的DOS(Windows)不可见行,这会导致错误。要摆脱这些不需要的字符,只需在“nix”系统上创建一个新的空白脚本并手动输入名称(不是通过复制和粘贴,以避免出现问题),比方说,将其命名为test2.sh。
然后将test.sh的所有内容复制到test2.sh(复制并粘贴)并运行test2.sh并查看它是否有效。如果没有,请尝试在新脚本上运行以下代码,以确保代码本身没有不需要的字符:
tr -d "\r" < /folder/test2.sh && echo >> /folder/test2.sh
然后再次尝试运行script2.sh以查看它是否有效。注意:上面代码的echo >> /folder/test2.sh
部分只是为了确保你的新脚本以换行符结束,这是一个Posix标准(如果没有它,某些程序可能会出错,因为他们希望文件以换行符结尾)。
答案 1 :(得分:0)
显然这是一个权限问题。 我只需要做一个sudu chown test2.jpg