【问题标题】:'RUN' in Linux Mint wont workLinux Mint 中的“RUN”不起作用
【发布时间】:2013-03-21 11:54:32
【问题描述】:

当我双击一个可执行文件时,单击运行后它不会运行。我用几个 .sh 文件和一些下载的软件试过了,有人知道为什么吗?

我需要运行的特定 .sh 文件是 zenity 菜单。当我在终端尝试时,它只是说

sh: Can't open TaskC.sh

那是在我使用之后

sh TaskC.sh

在文件中我使用了属性使其可执行并使用了

chmod 755 TaskC.sh
  1. 有谁知道我如何在没有终端的情况下运行它?
  2. 有人知道如何让 .sh 在终端中运行吗?

我的代码只是为了解决问题

#!/bin/bash
#GUI for TaskB menu
chmod 755 TaskC.sh
    temp='mktemp -t temp.XXXXXX'
    temp2='mktemp -t temp2.XXXXX'

function software {
sudo get-apt install gparted gnome-desk-utility
zenity --text-info --title "Install Software" --filename=$temp
--width 750 --height 10}

function create {
touch > Desktop/CET103Demo.txt
zenity --text-info --Title "Create CET103Demo.txt" --filename=$temp
--width 300 --height 500}

function delete {
rm Desktop/CET103Demo.txt
zenity --text-info --title "Remove CET103Demo.txt" --filename=$temp
--width 300 --height 500}

function search {
grep -H -r "BASH" /home/mintuser/.profile
zenity --text-info --Title "Search BASH" --filename=$temp
--width 300 --height 500}

while [ 1 ]
do

zenity --list --radiolist --title "TaskC Menu" --column "Select" --column "Menu     Selection"
FALSE "Install Software" FALSE "Create file" FALSE "Remove File" FALSE "Search BASH"   False  "Exit"   > $temp2
if [ $? -eq 1 ]
then
break fi
    selection ='cat $temp2'
    case $selection in
    "Install Software")
        software;;
    "Create File")
        create;;
    "Remove File")
        delete;;
    "Search BASH")
        search;;
    Exit)
break ;; *)
zenity --info "Sorry, invalid selection" esac
done $

非常感谢

【问题讨论】:

  • 您是否考虑过不通过图形界面运行程序,而是在终端上运行它?
  • 我需要它是 GUI,它是作业的一部分,我有一个终端菜单,我需要为它制作一个 GUI
  • 您应该将函数的结束大括号放在单独的行上。在 bash 中,结束大括号之前需要有空格(换行符满足此条件),如果它不在自己的行上,则命令需要以分号结尾。见the bash manualbreak fi 也是错误的——你在剪切和粘贴代码时遇到问题吗?
  • 如果您的脚本实际上是一个 bash 脚本(如果您使用 bash 特定的命令),请不要使用 sh 调用它。

标签: linux bash terminal linux-mint zenity


【解决方案1】:

试试./TaskC.sh

当然,您必须与脚本位于同一目录中。如果您想从任何地方执行它,您需要将它添加到您的 PATH 中(请参阅 KevinDTimm 的回答)

【讨论】:

  • 您必须与脚本位于同一目录中。 POSIX 系统也区分大小写,例如TaskC.sh 不是 taskc.sh.
  • 我让它使用 sh ~/Desktop/TaskC.sh 运行
  • 那么,再次,你和脚本不在同一个目录中。
【解决方案2】:

在终端窗口中解决问题:

问题是你的PATH不正确,你必须包含当前目录

第一个修复是运行sh ./TaskC.sh - 每次在当前目录中运行某些东西时都必须这样做

第二个是将你的 PATH 设置为 export PATH=$PATH:. - 这将为你的 shell 的当前调用修复它。将该行添加到 .bashrc 以便在您每次登录时进行设置

【讨论】:

  • 在哪里可以找到我的 .bashrc?我试过 whereis .bashrc 和 ls -la 但似乎我没有。
  • 没关系,我运行了 'nano ~/.bashrc' 并添加了 'export PATH=$PATH:.
猜你喜欢
  • 2015-10-15
  • 1970-01-01
  • 2019-12-15
  • 2012-06-24
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多