Bash Zenity空间表单-读取输入
嗨,我是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 '|
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"