Linux 下Shell编程使用while 时为什么会提示参数太多 第7行: [ : 参数太多

Linux 下Shell编程使用while 时为什么会提示参数太多 第7行: [ : 参数太多,第1张

你在while[xxx]之前将while

中括号

内的东西(xxx)打印一下看就明白了:

echo

xxx

可能原因是其中有参数带有

特殊字符

,如”[”、“]“等,你可以这样

引用参数

while

[

${var}

=

${

var2

}

]

do

如果还可能

有空串的话,这样万无一失:

while

[

”X${var}“

=

"X${var2}"

]

do

X是随便拼上去的一个字符,目的就是保证你那个串不会是空的

先保证你的linux命令行窗口是bash环境,我来给你细讲。

1)运行bash,确保是bash环境

2)下面看看相关命令的帮助。

运行  help true,你会看到:

$ help true

true: true

Return a successful result

Exit Status:

Always succeeds

true是bash的内置命令,总返回成功(退出状态总是0)。

3)运行  help :  ,你会看到:

$ help :

:: :

Null command

No effect; the command does nothing

Exit Status:

Always succeeds

冒号 : 是bash的内置命令,也叫空命令,也叫null命令,总返回成功(退出状态总是0)。

4)运行  help while ,你会看到:

$ help while

while: while COMMANDS; do COMMANDS; done

Execute commands as long as a test succeeds

Expand and execute COMMANDS as long as the final command in the

`while' COMMANDS has an exit status of zero

Exit Status:

Returns the status of the last command executed

while 是bash的内置命令,while后面的命令成功(退出状态是0)时,do 和done之间的命令就会执行,即,do 和done之间的东西就会循环。

所以说 while true与while :确实等同。类似于C语言中的 while (1),用于构造无穷循环。

shell编程基本概述:

shell 提供了与 *** 作系统通信的方式。此通信以交互的方式(来自键盘的输入立即 *** 作)或作为一个 shell 脚本执行。shell 脚本是 shell 和 *** 作系统命令的序列,它存储在文件中。

当登录到系统中时,系统定位要执行的 shell 的名称。在它执行之后,shell 显示一个命令提示符。普通用户的此提示符通常是一个 $(美元符)。当提示符下输入命令并按下 Enter 键时,shell 对命令进行求值,并尝试执行它。取决于命令说明,shell 将命令输出写到屏幕或重定向到输出。然后它返回命令提示符,并等待您输入另一个命令。

命令行是输入所在的行。它包含 shell 提示符。每行的基本格式如下:

$ 命令参数(一个或多个)

shell 视命令行的第一个字(直到第一个空白空格)为命令,所有后继字为自变量。

在Windows环境下,不论是使用Visual C++还是Delphi或是其他一些软件开发工具开发的应用程序,尽管存在着差别,但有一点是相同的:都是运行于Windows *** 作系统之下的。在程序开发过程中也经常要在自己的应用程序中加入一些Windows系统本身就有的功能,比如文件的拷贝、删除、查找以及运行程序等等。而这些功能在Windows *** 作系统下都是具备的,显然如果能直接从系统中调用这些功能将不仅仅减少程序的大小和开发人员的工作量,而且由于是直接通过 *** 作系统来完成这些功能,将会大大减小这部分程序出现异常错误的概率。Windows系统虽说也存在不少错误,但常用功能的错误还是比较少的,而且通过补丁程序可以更低限度减少系统错误,因此程序员可以将调试检错的注意力放在应用程序的其他地方,对于调用系统功能这部分代码则可以不必投入太大的精力去调试,因为这部分调试的工作在 *** 作系统发布的时候就已经由微软做好了。本文通过外壳编程,实现了搜寻文件、运行程序、控制工具条、最大最小化窗口的功能。

你再检查一下别的地方,我这边运行你的脚本,一切正常啊。

你要怎样的死循环啊?

这个脚本只有输入错误才会一直一直让你输入,当你输入了

y, yes, n, no,函数就return了呀

y | yes ) return 0;;

n | no  ) return 1;;

       ) echo "Answer yes or no"

看到没,这里有return的。

以上就是关于Linux 下Shell编程使用while 时为什么会提示参数太多 第7行: [ : 参数太多全部的内容,包括:Linux 下Shell编程使用while 时为什么会提示参数太多 第7行: [ : 参数太多、shell编程中while ture和while :为什么等同、linux shell 中while循环问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9871874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存