Bash Zenity Spaces表单 - 阅读输入

时间:2017-05-01 20:06:25

标签: bash forms search find zenity

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

if($row['title'] != NULL || $row['overview'] != NULL)

当我尝试在文件夹中搜索文件时 - "名称空间"它不起作用,因为空格符号与名称相同。

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

1 个答案:

答案 0 :(得分:1)

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

#!/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"

一些意见:

1)在为变量赋值或者扩展变量时,建议使用双引号。这排除了word splitting。请参阅this

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

3)你的一些变量连接有一些错误,我修正了这些错误。

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

我希望这有帮助!