/system/bin/sh: /sdcard/xxx.sh: can't execute: Permission denied
时间: 2023-06-30 21:18:14 浏览: 267
这个错误提示通常是由于你没有足够的权限来运行该脚本文件。你可以尝试使用以下命令来给该文件添加执行权限:
```
chmod +x /sdcard/xxx.sh
```
然后再次运行该脚本文件。如果问题仍然存在,可能是由于你的设备已经设置了禁止在外部存储器上运行脚本文件的安全限制。你可以尝试将该脚本文件拷贝到设备的内部存储器上,然后再次运行该脚本文件。
相关问题
#!/system/bin/sh if [ -f /bkdata/com.vrt.varc ]; then cp /mnt/sdcard/com.vrt.varc /bkdata/com.vrt.varc fi android10 执行报错/system/bin/sh: /vendor/bin/copy.sh[3]: syntax error: unmatched 'if'
你的脚本中 if 语句的结尾缺少了一个关键字 "fi",导致语法错误。正确的脚本应该像这样:
```sh
#!/system/bin/sh
if [ -f /bkdata/com.vrt.varc ]; then
cp /mnt/sdcard/com.vrt.varc /bkdata/com.vrt.varc
fi
```
请注意 if 和 fi 必须成对出现,if 后面的条件语句要用方括号 [] 括起来。
java.io.FileNotFoundException: /mnt/sdcard/man.mp3: open failed: EACCES (Permission denied)
这个错误可能是因为你没有获取到读写存储卡的权限。你可以在 AndroidManifest.xml 文件中添加以下代码:
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
如果你运行的是 Android 6.0 及以上版本,你还需要在运行时动态获取权限。你可以参考以下代码:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_READ_EXTERNAL_STORAGE);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE_WRITE_EXTERNAL_STORAGE);
}
```
在用户授予权限后,你可以在回调方法 onRequestPermissionsResult 中进行相应的操作。
希望这些步骤对你有所帮助。如果问题仍然存在,请提供更多的信息,我会尽力帮你解决问题。
阅读全文