我正在编写一个使用对话框的脚本文件(sh文件),我已经到了一个点,我只想把它放在一边几周,因为我生气地寻找错误。
需要注意的脚本部分:
INPUT=/tmp/input.sh.$$ #Just a tmp file used for storing information
FIELDS=/tmp/fields.sh.$$ #Just a tmp file used for storing information
function view_folder_properties() {
dialog --title "Choose a folder to view properties from" --dselect / 23 60 2> $INPUT
location=$(<"${INPUT}")
stat $location > $FIELDS
dialog --title "Viewing permissions" --textbox $FIELDS 23 60
}
问题不在于代码中的前两行,但是当我想执行stat和dialog时,它会返回两行错误,如下所示:
./lab-E.sh: line 232: stat: command not found
./lab-E.sh: line 233: dialog: command not found
我一直在寻找这个问题差不多一两个小时仍然找不到任何问题,这就是为什么我在寻求你的帮助。
在我的系统上回显$ PATH变量如下所示:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/ProgramData/Oracle/Java/javapath_target_98747640:/mnt/c/Program Files (x86)/Razer Chroma SDK/bin:/mnt/c/Program Files/Razer Chroma SDK/bin:/mnt/c/Program Files (x86)/Intel/iCLS Client:/mnt/c/Program Files/Intel/iCLS Client:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/IPT:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/IPT:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files (x86)/IVI Foundation/VISA/WinNT/Bin:/mnt/c/Program Files/Intel/WiFi/bin:/mnt/c/Program Files/Common Files/Intel/WirelessCommon:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Program Files (x86)/GtkSharp/2.12/bin:/mnt/c/Program Files/dotnet:/mnt/c/Users/<USERNAME>/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/<USERNAME>/AppData/Local/GitHubDesktop/bin:/snap/bin
对话框和统计信息路径/ usr / bin位于上面的$ PATH中
root@LAPTOP-UOKAJ438:~# which stat
/usr/bin/stat
root@LAPTOP-UOKAJ438:~# which dialog
/usr/bin/dialog
root@LAPTOP-UOKAJ438:~#
stat
和dialog
不是shell内置的,它们是外部程序。如果没有完整路径,则必须在$PATH
环境变量中搜索它们的位置,该变量通常包含它们的公共位置(分别为/bin
和/usr/bin
)。
但是你在前一行改变了$ PATH。新的$ PATH可能不包含命令所在的目录。
如果您只想要一个变量来存储路径而不是系统路径,请选择一个不同的名称($path
就可以了)。