Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在shell脚本中使用chmod命令_Linux_Shell - Fatal编程技术网

Linux 在shell脚本中使用chmod命令

Linux 在shell脚本中使用chmod命令,linux,shell,Linux,Shell,我试图在shell脚本中执行chmod命令,但出现以下错误: chmod: missing operand after "777" Try "chmod --help" for more informations. 这是我的一段重要代码: caminhoPadrao="/usr/local/lib/" ... chmod -R 777 $caminhoPadrao 下面是我的全部剧本 #!/bin/bash clear ##Definicao de Variaveis echo "Dig

我试图在shell脚本中执行chmod命令,但出现以下错误:

 chmod: missing operand after "777"
Try "chmod --help" for more informations.
这是我的一段重要代码:

caminhoPadrao="/usr/local/lib/"
...
chmod -R 777 $caminhoPadrao
下面是我的全部剧本

#!/bin/bash
clear

##Definicao de Variaveis
echo "Digite a velocidade da sua ECF: "; read velocidade

caminhoCaixaProperties="`~/folds/myfile.dot`"
caminhoDados="`~/folds/DarumaFramework/`"
caminhoPadrao="/usr/local/lib/"
caminhoAuxiliarConf="/usr/local/share/DarumaFramework"
libDarumaFramework="libDarumaFramework.so"
liblebin="liblebin.so"
libLeituraMFDBin="libLeituraMFDBin.so"

#Valores do MD5
md5libDarumaFramework="908bd049bb5a3c28f58f3a1c907b5f50"
md5liblebin="328378ef909491e62274c42000b50d31"
md5libLeituraMFDBin="c5f0882b5c242231225ad41dd9a1737c"

#Tempo de espera entre processos
timer=1

#Mensagens
sucesso="--->OK"

clear
echo "Checando configurações para funcionamento da coleta MFD..."
echo ""

echo "Procurando $libDarumaFramework em $caminhoPadrao"
sleep $timer
if [ -e $caminhoPadrao$libDarumaFramework ];
then 
 echo $sucesso
else 
 echo "A biblioteca $libDarumaFramework nao foi encontrada em $caminhoPadrao"
 exit
fi

echo ""
echo "Procurando $liblebin em $caminhoPadrao"
sleep $timer
if [ -e $caminhoPadrao$liblebin ];
then 
 echo $sucesso
else 
 echo "A biblioteca $liblebin nao foi encontrada em $caminhoPadrao"
  exit
fi

echo ""
echo "Procurando $libLeituraMFDBin em $caminhoPadrao"
sleep $timer
if [ -e $caminhoPadrao$libLeituraMFDBin ];
then 
 echo $sucesso
else 
 echo "A biblioteca $libLeituraMFDBin nao foi encontrada em $caminhoPadrao"
  exit
fi

clear
echo "Checando versao das bibliotecas..."

sleep $timer
chk=`md5sum $caminhoPadrao$libDarumaFramework`
md5Atual=`echo $chk | cut -f1 -d " "`
if [ "$md5libDarumaFramework" != "$md5Atual" ];
then 
 echo "A versão da biblioteca $libDarumaFramework nao esta correta"
  exit
fi


sleep $timer
chk=`md5sum $caminhoPadrao$liblebin`
md5Atual=`echo $chk | cut -f1 -d " "`
if [ "$md5liblebin" != "$md5Atual" ];
then 
 echo "A versão da biblioteca $liblebin nao esta correta"
  exit
fi

sleep $timer
chk=`md5sum $caminhoPadrao$libLeituraMFDBin`
md5Atual=`echo $chk | cut -f1 -d " "`
if [ "$md5libLeituraMFDBin" != "$md5Atual" ];
then 
 echo "A versão da biblioteca $libLeituraMFDBin nao esta correta"
  exit
fi

 echo $sucesso
 sleep $timer

 clear
 echo "Alterando permissao dos diretorios e arquivos para 777..."

 chmod -R 777 $caminhoPadrao
 sleep $timer

 chmod -R 777 $caminhoDados
 sleep $timer 

 chmod 777 $caminhoCaixaProperties
 sleep $timer

 chmod -R 777 $caminhoAuxiliarConf

 echo $sucesso
 sleep $timer

 clear
 echo "Checando consistencia do ld.so.conf..."
 echo $sucesso
 sleep $timer

 clear 
 echo "Configurando portas ECF..."

 for((x=0;x<=10;x++))
 do
 sleep $timer
 if [ -e "/dev/ttyS$x" ]
  then
  sudo chmod 777 "/dev/ttyS$x"
  stty -F "/dev/ttyS$x $velocidade"
 fi

  if [ -e "/dev/ttyUSB$x" ]
  then
  sudo chmod 777 "/dev/ttyUSB$x"
  stty -F "/dev/ttyUSB$x $velocidade"
 fi

 done

 sudo chmod 777 "/dev/ttyS*"
 sudo chmod 777 "/dev/ttyU*"

 clear
 echo "Iniciando testes na ECF ..."

 for((x=0;x<=10;x++))
 do
  sleep $timer

 if [ -e "/dev/ttyS$x" ]
  then 
  echo "teste" >> "/dev/ttyS$x"
  echo "teste" >> "/dev/ttyS$x"
  echo "teste" >> "/dev/ttyS$x"

  echo "A ECF 'cuspiu' papel ? [sim/nao]"; read portaEncontrada

  if [ $portaEncontrada=="sim" ] then
   portaDefinitiva="/dev/ttyS$x"
   echo "ECF conectada em $portaDefinitiva"
   break
  fi

 fi

  if [ -e "/dev/ttyUSB$x" ]
  then
  echo "teste" >> "/dev/ttyUSB$x"
  echo "teste" >> "/dev/ttyUSB$x"
  echo "teste" >> "/dev/ttyUSB$x"  

  echo "A ECF 'cuspiu' papel ? [sim/nao]"; read portaEncontrada

  if [ $portaEncontrada=="sim" ] then
   portaDefinitiva="/dev/ttyUSB$x"
   echo "ECF conectada em $portaDefinitiva"
   break
  fi
 fi

 done


 echo "Processo Finalizado com sucesso"
 exit
#/bin/bash
清楚的
##变量定义
echo“Digite a velocidade da sua ECF:”;读velocidade
caminhoCaixaProperties=“`/folds/myfile.dot`”
Caminodados=“`~/folds/darumadaframework/`”
Caminopadrao=“/usr/local/lib/”
CaminarConf=“/usr/local/share/DarumaFramework”
libdarumafframework=“libdarumafframework.so”
liblebin=“liblebin.so”
libLeituraMFDBin=“libLeituraMFDBin.so”
#Valores不做MD5
md5libDarumaFramework=“908bd049bb5a3c28f58f3a1c907b5f50”
md5liblebin=“328378ef909491e62274c42000b50d31”
md5libLeituraMFDBin=“c5f0882b5c242231225ad41dd9a1737c”
#前进的节奏
计时器=1
#门萨根斯
sucesso=“-->OK”
清楚的
echo“配置文件功能文件…”
回声“”
echo“Procurando$Libdarumaem$Caminopadrao”
睡眠计时器
如果[-e$Caminopadrao$Libdaruma框架];
然后
echo$Suceso
其他的
echo“一个图书馆$Libdaruma框架nao foi encontrada em$caminhoPadrao”
出口
fi
回声“”
echo“Procurando$liblebin em$Caminopadrao”
睡眠计时器
如果[-e$Caminopadrao$liblebin];
然后
echo$Suceso
其他的
echo“一本书$liblebin nao foi encontrada em$caminhoPadrao”
出口
fi
回声“”
echo“Procurando$libLeituraMFDBin em$Caminopadrao”
睡眠计时器
如果[-e$Caminopadrao$libLeituraMFDBin];
然后
echo$Suceso
其他的
echo“一本书$libLeituraMFDBin nao foi encontrada em$caminhoPadrao”
出口
fi
清楚的
echo“Checando versao das bibliotecas…”
睡眠计时器
chk=`md5sum$Caminopadrao$Libdaruma框架`
md5Atual=`echo$chk | cut-f1-d“”`
如果[“$md5libDarumaFramework”!=“$md5Atual”];
然后
echo“一个图书馆$Libdaruma框架nao esta correta”
出口
fi
睡眠计时器
chk=`md5sum$caminhoPadrao$liblebin`
md5Atual=`echo$chk | cut-f1-d“”`
如果[“$md5liblebin”!=“$md5Atual”];
然后
echo“一个图书馆$liblebin nao esta correta”
出口
fi
睡眠计时器
chk=`md5sum$caminhoPadrao$LIBLETURAMFDBIN`
md5Atual=`echo$chk | cut-f1-d“”`
如果[“$md5libLeituraMFDBin”!=“$md5Atual”];
然后
echo“一个图书馆$libLeituraMFDBin nao esta correta”
出口
fi
echo$Suceso
睡眠计时器
清楚的
echo“第777段规定的董事许可变更”
chmod-R 777$Caminopadrao
睡眠计时器
chmod-R 777$Caminodados
睡眠计时器
chmod 777$CaminocaixaProperties
睡眠计时器
chmod-R 777$CAMIHOLIARCONF
echo$Suceso
睡眠计时器
清楚的
echo“Checando consistencia do ld.so.conf…”
echo$Suceso
睡眠计时器
清楚的
echo“配置端口ECF…”
对于((x=0;x)/dev/ttyS$x)
echo“teste”>>“/dev/ttyS$x”
echo“teste”>>“/dev/ttyS$x”
回音“ECF‘cuspiu’papel?[sim/nao]”,阅读PortainContrada
如果[$portaincontrada==“sim”],则
portaDefinitiva=“/dev/ttyS$x”
echo“ECF Conconnectada em$portaDefinitiva”
打破
fi
fi
如果[-e”/dev/ttyUSB$x“]
然后
echo“teste”>>“/dev/ttyUSB$x”
echo“teste”>>“/dev/ttyUSB$x”
echo“teste”>>“/dev/ttyUSB$x”
回音“ECF‘cuspiu’papel?[sim/nao]”,阅读PortainContrada
如果[$portaincontrada==“sim”],则
portaDefinitiva=“/dev/ttyUSB$x”
echo“ECF Conconnectada em$portaDefinitiva”
打破
fi
fi
完成
echo“Processo Finalizado com successo”
出口
看看这是否有效

$(chmod -R 777 $caminhoPadrao )
问题在于:

caminhoCaixaProperties="`~/folds/myfile.dot`"
caminhoDados="`~/folds/DarumaFramework/`"
您使用了“`”执行属性,我很肯定您会在消息行前面看到这样的内容:

bash: ~/folds/myfile.dot: command not found

由于这些错误,两个变量都变为“”,然后运行命令
chmod 777
,该命令缺少文件名参数


删除“`”从文件/目录名中,您会很好。

可能错误不在这两行代码中。制作一个完整的示例来显示错误。尝试在该语句之前回显Caminopadrao。我已经尝试回显$Caminopadrao和变量apper normal。错误继续,不起作用。如果我删除“`”,我将所有代码都发布在POST中我遇到了另一个错误:chmod:无法访问“~/folds/DarumaFramework/”:文件或目录不可用found@user2776409:更改为$HOME您能帮我解决另一个问题吗?我遇到以下错误:“stty:/dev/ttyS0 123:找不到文件或目录”。当我尝试执行“stty-F…”时,如
stty-F”/dev/ttyS$x$velocidade
?您需要删除引号:
stty-F/dev/ttyS$x$velocidade
。使用引号,您的
stty
命令有两个而不是三个参数,第二个参数是“/dev/ttyS0 123”没有使用两个:/dev/ttys0和123。这很有效,但我现在得到了以下错误:./checaEcfParaMfd.sh:157行:
token“don't waiting
fi”附近的轴错误
bash: ~/folds/DarumaFramework/: is a directory