我在非常基本的基本与Shell。一般来说,我只对ssh使用WSL2。现在,我写一个循环,所以我谷歌一个例子,看看它是如何工作的。这是我的参考:https://ryanstutorials.net/bash-scripting-tutorial/bash-loops.php。问题是,即使我只是复制和粘贴他们的例子,我得到错误:
loop_learning.sh: line 4: $'r': command not found
loop_learning.sh: line 10: syntax error near unexpected token `done'
loop_learning.sh: line 10: `done'
这是我刚刚复制粘贴的代码:
#!/bin/bash
# Basic while loop
counter=1
while [ $counter -le 10 ]
do
echo $counter
((counter++))
done
echo All done
问题可能是您从Windows复制粘贴了脚本,并试图从Linux执行它。Windows除了使用NL外还使用CR来表示新行,而Linux只使用'n',并且发现前者('r')很奇怪。
在WSL2终端上尝试这样做:
sed 's/r//g' your-copied-script.sh > your-clean-script.sh
并执行你的-clean-script.sh