当我双击可执行文件时,单击“运行”后它不会运行。我已经用几个 .sh 文件和一些下载的软件尝试过,有人知道为什么吗?
我需要运行的一个特定 .sh 文件是一个 zenity 菜单。当我在终端尝试时,它只是说
sh: Can't open TaskC.sh
这是我使用后的
sh TaskC.sh
在文件中,我使用了属性使其可执行并使用了
chmod 755 TaskC.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 $
非常感谢
尝试使用
./TaskC.sh
当然,您必须与脚本位于同一目录中。如果你想从任何地方执行它,你需要将它添加到你的路径中(参见KevinDTimm的答案)
要解决终端窗口中的问题:
问题是你的PATH不正确,你必须包含当前目录
第一个修复是运行
sh ./TaskC.sh
- 每次在当前目录中运行某些内容时都必须执行此操作
第二个是设置您的 PATH,如
export PATH=$PATH:.
- 这将为您的 shell 的当前调用修复它。将该行添加到 .bashrc 中,以便每次登录时进行设置
您要求脚本使用 bash 运行,但现在要求 sh 运行它。 sh 不是 linux mint 中的 bash,除非您手动更改了它。那和上面的答案。