我在bash中看到了類似的問題,但無法解決它。 我運行一個簡單的腳本:Tcsh shell腳本「語法錯誤意外的文件結尾」if語句
#!/bin/bash
set mystring=0
if ("$mystring" == "0")
echo "true"
elseif
echo "wrong"
endif
我的輸出是「行12:語法錯誤:意外的文件結尾」。你能幫我嗎?
我在bash中看到了類似的問題,但無法解決它。 我運行一個簡單的腳本:Tcsh shell腳本「語法錯誤意外的文件結尾」if語句
#!/bin/bash
set mystring=0
if ("$mystring" == "0")
echo "true"
elseif
echo "wrong"
endif
我的輸出是「行12:語法錯誤:意外的文件結尾」。你能幫我嗎?
這裏的工作bash的版本(而不是tcsh),給您的示例中的第一行:
#!/bin/bash
mystring="0"
if [ "$mystring" -eq "0" ]; then
echo "true"
else
echo "wrong"
fi
注意,大部分的語法是對於bash略有不正確,即使邏輯看起來都正確。你還應該確定「mystring」是一個整數還是一個字符串類型 - 在這裏我假設你期望字符串,並相應地修改了這個例子。
同意,混合使用bash和tcsh。 OP,你想要什麼?你的標題說tcsh。每個原始示例代碼的elseif(elif)的任何變體都需要測試,例如'elif [[-f $ {fileToProcess}]];那麼...' – shellter
如果您使用的是tcsh,那麼您的if語法是錯誤的。如下使用
if ("$mystring" == "0") then
commands
else
commands
endif
即使更改此設置後,您可能會遇到問題。它可以通過來解決,其源代碼是,而不是在shell中輸入它的名字。即,
$source script.sh
instead of
$script.sh
你有沒有得到一個解決方案? – MoonKnight