Bash脚本,请解释这个语法 读取dir-ev文件时;做 #做事 完成
我找不到解释的部分是Bash脚本,请解释这个语法 读取dir-ev文件时;做 #做事 完成,bash,syntax,Bash,Syntax,我找不到解释的部分是readdirev部分。我不熟悉Bash。我主要做PHP和MySQL。有人能解释一下吗 谢谢。简短的版本是,它一次从输入中取出一行,并将其中的各个字段分配到变量中 read dir ev file将一行一行地读取,并期望每行包含3项。然后,它将第一个项目分配到名为dir的变量中,第二个项目分配到名为ev的变量中,第三个项目分配到名为file的变量中 从帮助的输出中读取: (编辑:此处有更可读的版本:) 在shell中说“帮助阅读”。谢谢。我在查看的同时没有想到查看阅读注意“
readdirev
部分。我不熟悉Bash。我主要做PHP和MySQL。有人能解释一下吗
谢谢。简短的版本是,它一次从输入中取出一行,并将其中的各个字段分配到变量中
read dir ev file
将一行一行地读取,并期望每行包含3项。然后,它将第一个项目分配到名为dir
的变量中,第二个项目分配到名为ev
的变量中,第三个项目分配到名为file
的变量中
从
帮助的输出中读取
:
(编辑:此处有更可读的版本:)
在shell中说“帮助阅读”。谢谢。我在查看
的同时
没有想到查看阅读
注意“为姓氏分配了任何剩余单词”的注释。如果行上有6个字段,则前两个字段分配给dir
和ev
,其余字段位于文件中。如果只有两个字段,则文件
为空;如果只有一个字段,那么ev
和file
为空。@Amber谢谢,太棒了。我不知道发生了什么事。从其他地方复制while循环的内容,认为ev
是某种保留字。
read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
Read a line from the standard input and split it into fields.
Reads a single line from the standard input, or from file descriptor FD
if the -u option is supplied. The line is split into fields as with word
splitting, and the first word is assigned to the first NAME, the second
word to the second NAME, and so on, with any leftover words assigned to
the last NAME. Only the characters found in $IFS are recognized as word
delimiters.
If no NAMEs are supplied, the line read is stored in the REPLY variable.
Options:
-a array assign the words read to sequential indices of the array
variable ARRAY, starting at zero
-d delim continue until the first character of DELIM is read, rather
than newline
-e use Readline to obtain the line in an interactive shell
-i text Use TEXT as the initial text for Readline
-n nchars return after reading NCHARS characters rather than waiting
for a newline, but honor a delimiter if fewer than NCHARS
characters are read before the delimiter
-N nchars return only after reading exactly NCHARS characters, unless
EOF is encountered or read times out, ignoring any delimiter
-p prompt output the string PROMPT without a trailing newline before
attempting to read
-r do not allow backslashes to escape any characters
-s do not echo input coming from a terminal
-t timeout time out and return failure if a complete line of input is
not read withint TIMEOUT seconds. The value of the TMOUT
variable is the default timeout. TIMEOUT may be a
fractional number. If TIMEOUT is 0, read returns success only
if input is available on the specified file descriptor. The
exit status is greater than 128 if the timeout is exceeded
-u fd read from file descriptor FD instead of the standard input
Exit Status:
The return code is zero, unless end-of-file is encountered, read times out,
or an invalid file descriptor is supplied as the argument to -u.