Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Zenity空间表单-读取输入_Bash_Forms_Search_Find_Zenity - Fatal编程技术网

Bash Zenity空间表单-读取输入

Bash Zenity空间表单-读取输入,bash,forms,search,find,zenity,Bash,Forms,Search,Find,Zenity,嗨,我是Bash的新手,我在读取带有空格的输入时遇到了问题。 我使用zenity,这是我的代码: RESULT=$(zenity --forms --title="Title"\ --text="Text"\ --add-entry="File Name"\ --add-entry="Directory") NAME=$(echo $RESULT| cut -d '|' -f 1) DIRECTORY=$(echo $RESULT| cut -d '|

嗨,我是Bash的新手,我在读取带有空格的输入时遇到了问题。 我使用zenity,这是我的代码:

RESULT=$(zenity --forms --title="Title"\
    --text="Text"\
    --add-entry="File Name"\
    --add-entry="Directory")


    NAME=$(echo $RESULT| cut -d '|' -f 1)
    DIRECTORY=$(echo $RESULT| cut -d '|' -f 2)

    if [ $DIRECTORY ]; then
        COMMAND="$COMMAND $DIRECTORY "
    fi

    if [ $NAME ]; then
      COMMAND="$COMMAND -name $NAME "
    fi

    find $COMMAND
当我试图搜索文件夹中的文件-“名称空间”时,它不起作用,因为空间符号与名称相同

如果您知道如何使用空格,请帮助。
谢谢大家!

这是您的代码,修复了一些问题(现在可以使用):

一些评论:

1) 为变量赋值或展开变量时,最好使用双引号。这就排除了
分词
。看

2) 避免使用大写的变量-Bash shell使用大写的变量,您应该避免这样做以避免名称冲突

3) 您的一些变量连接有一些错误,我修复了这些错误

注意:用户应输入包含正斜杠的目录名,例如
/folder/
/
(对于根目录)


我希望这有帮助

我还有一个问题。当我想按类型查找所有文件时,命令应该是什么样子的?查找:“/home/mint/-Disc 1/*.mp3”不起作用。您应该查看
find
iname
选项(例如:find-iname*.mp3)。请参阅:。每当您遇到问题时,最好从查找命令的手册页开始,在本例中,您可以搜索“FindManLinux”。祝你好运
#!/bin/bash

result="$(zenity --forms --title="Title"\
    --text="Text"\
    --add-entry="File Name"\
    --add-entry="Directory")"


    name="$(echo "$result"| cut -d '|' -f 1)"
    directory="$(echo "$result"| cut -d '|' -f 2)"

    if [ "$directory" ]; then
        command="$directory"
    fi

    if [ "$name" ]; then
      command="$command$name"
    fi

    find "$command"