我正在学习shell脚本,我找到了shell脚本条件语句的不同语法。 csh脚本是否具有与tcsh脚本不同的语法。有人说
if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then
echo "You have access!"
else
echo "ACCESS DENIED!"
fi
一些使用
if ($PASSWORD == $VALID_PASSWORD)
echo "You have access!"
else
echo "ACCESS DENIED!"
endif
我尝试了自己,我得到的错误如“if:Empty if”或“If:Expression Syntax”和这些消息非常简短易懂。所以我想问一下如何解决这些问题,是否有基于shell的解决方案(csh,tcsh)
如果我的shell是tcsh,我应该总是tcsh脚本还是我可以编写bash脚本。
答案 0 :(得分:4)
csh
和tcsh
共享if
语句的相同语法:
if (expr) then
...
else if (expr2) then
...
else
...
endif
你的另一个例子(可能)来自sh
或bash
:
if list; then list; [ elif list; then list; ] ... [ else list; ] fi
您的列表恰好是对程序的调用(有时是内置的shell)[
。
只要你输入正确的
,你就可以为任何你想要的shell编写脚本#!/bin/sh
#!/bin/bash
#!/bin/csh
#!/bin/tcsh
将您脚本的目标shell与文件顶部相匹配。
答案 1 :(得分:0)
这是实际的脚本 -
#!/bin/sh
# This is some secure program that uses security.
VALID_PASSWORD="secret" #this is our password.
echo "Please enter the password:"
read PASSWORD
if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then
echo "You have access!"
else
echo "ACCESS DENIED!"
fi