Fly*_*out 1 shell scripting shell-script syntax
我在 .sh 中使用 for 循环时出现“接近意外标记‘do’的语法错误”错误。这是代码:
#!/bin/sh
# some code
for flux in $(ls -d /home/eai/*/*/*) ; do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
done
Run Code Online (Sandbox Code Playgroud)
1) sh script.sh 或 bash script.sh
'cript_1409.sh: line 24: syntax error near unexpected token `do
'cript_1409.sh: line 24: `for flux in $(ls -d /home/eai/*/*/*); do
Run Code Online (Sandbox Code Playgroud)
2) ./script.sh
-bash: ./script_1409.sh: /bin/sh^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
1) 对循环使用不同的语法。
for flux in $(ls -d /home/eai/*/*/*) ; do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
) &
done
Run Code Online (Sandbox Code Playgroud)
或者
for flux in $(ls -d /home/eai/*/*/*)
do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
done
Run Code Online (Sandbox Code Playgroud)
2) 将#!/bin/sh 更改为#!/bin/bash。
3) 将扩展名 .sh 更改为 .bash 并重试上述所有执行命令。
您的脚本已DOS
编码并且sh
/bash
不喜欢这样。安装dos2unix
并运行
dos2unix <script>
Run Code Online (Sandbox Code Playgroud)
在你的脚本上。并再次运行它。
归档时间: |
|
查看次数: |
11316 次 |
最近记录: |