使用大括号{作为tcsh Linux脚本的输入

使用大括号{作为tcsh Linux脚本的输入,linux,tcsh,curly-braces,Linux,Tcsh,Curly Braces,此问题与Linux中的tcsh脚本有关。假设我希望用户输入用户名和密码,然后让脚本检查两者。如果用户的密码中有一个大括号{,则脚本将无法工作,因为声明: 失踪} 有没有办法克服这个问题?有没有办法启动脚本,让它从内部处理花括号 谢谢,Poly假设您正在使用$阅读输入,感谢所有观众和dave sines的回答 答案是: 如果您使用$argv,它将失败 如果使用“$argv”,它将起作用 因此,如果一个参数可以包含一个大括号{,那么使用双引号包装$argv以正确读取它 Poly在csh中,2个单引号

此问题与Linux中的tcsh脚本有关。假设我希望用户输入用户名和密码,然后让脚本检查两者。如果用户的密码中有一个大括号{,则脚本将无法工作,因为声明:

失踪}

有没有办法克服这个问题?有没有办法启动脚本,让它从内部处理花括号


谢谢,Poly

假设您正在使用$阅读输入,感谢所有观众和dave sines的回答

答案是:

如果您使用$argv,它将失败

如果使用“$argv”,它将起作用

因此,如果一个参数可以包含一个大括号{,那么使用双引号包装$argv以正确读取它


Poly

在csh中,2个单引号可用于保护(转义)花括号。在回显变量时,可能需要一个双引号(“):

set a=''{''
echo "$a"
如果在脚本中使用大括号(或括号,[]),则可以将回引号(
)中的echo和转义括号组合起来:

set b = " COMMANDS `echo ''{''` MORE COMMANDS `echo ''}''` "
echo "$b"
set b = " COMMANDS `echo ''{''` MORE COMMANDS `echo ''}''` "
echo "$b"