0

我正在尝试创建一个脚本来做简单的事情。我需要提示用户回答问题,输入是或否。该脚本是为 csh 编写的,但在默认用户 shell 为 bash 时不起作用。我的环境是 Red Hat Enterprise Linux 5

#!/bin/csh -f
echo -n Type yes to continue
set answer = $<
#...

此代码适用于 csh 但不适用于 bash 打印以下错误:

syntax error near unexpected token 'newline'
bash 'set answer =$<'

我真的需要为两个 shell 使用相同的脚本(我认为这是放在#!/bin/csh文件开头的目的!)

我真的不知道如何修改我的脚本以使其在 bash 中工作。请问你能帮帮我吗?非常感谢你的帮助。

4

1 回答 1

2

很难想出比 csh 和 bash 更多不同的 shell。它们是不同的语言,你不能期望 csh 代码在 bash 中工作,或者相反。

在 bash 中,您使用内置的 shell 从 STDIN 读取read,在 csh 中,您使用构造$<。不同语言。

我真的需要为两个 shell 使用相同的脚本 为什么?当您放置#!/bin/csh在脚本的开头时,它将运行 c-shell,#!/bin/bash然后使用它将运行 bash。常见的错误是在 之前有空格或其他字符#!,它们必须绝对是文件中的前两个字节。

于 2013-01-06T20:06:56.010 回答