【发布时间】:2013-03-21 11:54:32
【问题描述】:
当我双击一个可执行文件时,单击运行后它不会运行。我用几个 .sh 文件和一些下载的软件试过了,有人知道为什么吗?
我需要运行的特定 .sh 文件是 zenity 菜单。当我在终端尝试时,它只是说
sh: Can't open TaskC.sh
那是在我使用之后
sh TaskC.sh
在文件中我使用了属性使其可执行并使用了
chmod 755 TaskC.sh
- 有谁知道我如何在没有终端的情况下运行它?
- 有人知道如何让 .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 manual。
break fi也是错误的——你在剪切和粘贴代码时遇到问题吗? -
如果您的脚本实际上是一个 bash 脚本(如果您使用 bash 特定的命令),请不要使用
sh调用它。
标签: linux bash terminal linux-mint zenity