[英]What is the error in this shell script
我从未使用过shell脚本,但是现在我必须这样做,这是我想要做的事情:
#!/bin/bash
echo running the program
./first
var = ($(ls FODLDER |wc -l)) #check how many files the folder contains
echo $var
if( ["$var" -gt "2"] #check if there are more the 2file
then ./second
fi
scriopt在if
语句时崩溃。 我该如何解决
许多:
var = ($(ls FODLDER |wc -l))
这是错误的,您不能在=
周围留空格。
if( ["$var" -gt "2"]
您的(
在那里没有做任何事情,因此必须将其删除。而且, [
和]
周围需要空格。
总之,这将更有意义:
#!/bin/bash
echo "running the program"
./first
var=$(find FOLDER -maxdepth 1 -type f|wc -l) # better find than ls
echo "$var"
if [ "$var" -gt "2" ]; then
./second
fi
注意:
echo
时引用,特别是在处理变量时。 如下编辑您的script.bash文件:
#!/bin/env bash
dir="$1"
echo "running the program"
./first
dir_list=( $dir/* ) # list files in directory
echo ${#dir_list[@]} # count files in array
if (( ${#dir_list[@]} > 2 )); then # test how many files
./second
fi
script.bash /tmp/
您需要学习bash以避免危险的动作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.