我試圖附加到文件這個僞代碼:巴什 - 如何字,如果再聲明
if [ `expr $MOD % 5` -eq 0 ]; then.
我做這件事是殼爲:
echo if [ `expr $MOD % 5` -eq 0 ]; then
但它給了我一個語法錯誤附近的意外令牌'然後'。我無法弄清楚我要去哪裏錯了。
我試圖附加到文件這個僞代碼:巴什 - 如何字,如果再聲明
if [ `expr $MOD % 5` -eq 0 ]; then.
我做這件事是殼爲:
echo if [ `expr $MOD % 5` -eq 0 ]; then
但它給了我一個語法錯誤附近的意外令牌'然後'。我無法弄清楚我要去哪裏錯了。
使用單引號:
$ echo 'if [ `expr $MOD % 5` -eq 0 ]; then'
if [ `expr $MOD % 5` -eq 0 ]; then
如果我讀這個權利,你想追加這個實際的文本文件?
if [ `expr $MOD % 5` -eq 0 ]; then
然後問題是你的命令結構。你用過這個:
echo if [ `expr $MOD % 5` -eq 0 ]; then
這實際上是兩個命令,就shell而言,由於分號。因此,它是一樣的:
echo if [ `expr $MOD % 5` -eq 0 ]
then
由於then
通常不是一個有效的命令,這是有條件的外殼上下文之外(例如if
),外殼不知道怎麼用它做。
你需要做的是將整個事情作爲一個字符串引用,並通過來回顯。
echo 'if [ `expr $MOD % 5` -eq 0 ]; then'
使用單引號('
),而不是雙引號("
)是很重要的。如果使用雙引號,則反引號(expr $MOD % 5
)中的位將被評估,而不是按原樣傳遞給文件。
呃。刪除'echo'? – melpomene
刪除然後在回聲線看它打印什麼 –
通常,使用'$(...)'而不是反引號,並使用'$(($ MOD%5))'而不是'expr'命令。 'echo'if [$(($ MOD%5))-eq 0];然後'。 – chepner