大家好,我有这个问题,我在 csh 中有一个示例程序(我知道它不是用于编写脚本的最佳语言,但我在这里没有选项)它如下所示:
#!/bin/csh
echo 'please enter values'
read a
read -e b
echo "My values are $a and $b"
正如您可能看到的,我的第二次阅读将采用文件输入。这是需要的,因为我的实际程序将具有此功能;现在我想要做的是将其转换为别名,但是当我执行上述脚本时,我得到了 foll。输出
please enter values
read: Command not found
read: Command not found
a: Undefined variable
我该如何解决这个问题,而且我想将这所有 4 行转换为多行别名。我过去写过单行别名,没有问题,但不确定多行。如果有人可以帮忙,我将不胜感激
正如您所发现的,C shell 没有
read
类似于 Bourne 类型 shell 的内置函数。我不精通
csh
语法,但据我所知,最接近的等价物是使用特殊变量$<
。来自man csh
:例如
这使
请注意,在
$<
处理多字输入的分配方式方面存在与实现相关的差异 - 特别是,Tenextcsh
默认情况下不引用输入,而是需要$<:q
获得与 BSD 相同的行为csh
。还有(据我所知)没有内置的 readline 编辑支持相当于 bash shell 的read -e
.就多行别名而言,它们似乎确实有效:
测试它
但是,这不是我建议依赖的功能。