gpt4 book ai didi

unix - 为什么在使用标准输入和输出的 csh 脚本中出现 "No Match"错误?

转载 作者:行者123 更新时间:2023-12-05 04:11:08 25 4
gpt4 key购买 nike

我正在尝试感受一下 Unix,以便我可以在 UNIX csh 中编写一个简短的程序,该程序接受标准输入并返回标准输出。所以我写了下面的代码:

echo "TEST"
echo -n "Input: "
set TEST = "$<"
echo $TEST

但是,当我输入某些字符时,我不断收到无法完全弄清楚的错误。例如,

第 1 轮:没有问号。如您所见,它完全按照我想要的方式运行。

edoras ~/As4[199]% ./scriptp1
TEST
Input: www.google.com/search
www.google.com/search

第 2 轮:带问号。突然出现“不匹配”错误。

 edoras ~/As4[201]% ./scriptp1
TEST
Input: https://www.google.com/search?criteria
echo: No match.

那么这个错误是什么,我该如何修复它?因为对于我必须编写的实际程序,我必须能够读取所有特殊字符并打印出它们的 ASCII 代码。

最佳答案

来自 tcsh manual page :

Unless enclosed in '"' or given the ':q' modifier the results of variable substitution may eventually be command and filename substituted.

由于变量未被引用,shell 尝试文件名替换,但失败了,因为您可能在名为 www.google.com 的子目录中没有匹配 search?citeria 的文件 在当前目录中名为 https: 的子目录中。 “不匹配”意味着文件名替换失败。来自同一手册页:

It is an error for a glob-pattern containing '*', '?', '[' or '~', with or without '^', not to match any files.

技术解答到此结束。其余的纯粹是基于意见的。

请注意,除非您有特定的充分理由,否则通常认为最好在 POSIX 兼容的 shell 中编写脚本,这仅仅是因为 csh 兼容的 shell 在默认情况下并不总是可用。我认为作为初学者,您真的应该首先学习在 POSIX 兼容的 shell 中编写脚本,然后才在需要时考虑 csh 兼容的 shell。

关于unix - 为什么在使用标准输入和输出的 csh 脚本中出现 "No Match"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43241824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com