我有一个文件 A.f,其中仅包含一行
Check something: {nameA nameB nameC}
然后,我定义一个名为 var_A 的变量
set var_A = `grep "Check something" A.f | head -n 1`
但是此设置失败,错误消息为
Missing }.
这让我很困惑,所以我做了一个测试:
echo {0}. # 0
echo {0 1}. # Missing }.
echo {0 }. # Missing }.
echo "{0 1}" # {0,1}
这让我更困惑,但我可以发现 cshell 中 {} 的任何含义都只是将 {} 作为列表形式的简写。
有谁知道为什么{}不能包含任何空白吗?
有谁知道为什么{}不能包含任何空白吗?
请参阅手册页部分 文件名替换:
如果一个单词包含...`{'...,那么该单词就是文件名替换的候选者...
请注意,未加引号的单词不能包含任何空格。 我们不能指望能够使用不带引号的特殊字符,所以让我们引用它们:
set var_A = "`grep Check\ something A.f | head -n 1`"