小编Ugu*_*gul的帖子

Echo 权限被拒绝(尝试在 shell 脚本中使用 echo 而不是 ls 命令)

我正在尝试编写一个脚本,在某些时候我需要列出目录中的所有内容并从该目录中 grep 一些内容。我用ls做不到。ls 不是我该做的人。所以我尝试用 echo 命令来完成 ls 的工作,但它现在给了我一个权限被拒绝的错误。您可以看到下面的脚本:

#!/bin/sh
# Test for network connection

for interface in $(echo $(/sys/class/net/*) | grep -v lo);
do
  if [ "$(cat /sys/class/net/"$interface"/carrier)" = 1 ]; then
 OnLine=1;
 fi
done
if ! [ $OnLine ]; then echo "Not Online" > /dev/stderr;
 exit;
fi
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

./carriercontrol.sh: line 10: /sys/class/net/apcli0: Permission denied
Run Code Online (Sandbox Code Playgroud)

我可以做什么来完成这个脚本?有没有办法获取目录列表并用某些东西通过管道传输它。而且即使我可以取消该许可,我认为 echo 也会给我带来更多麻烦。

编辑: 我尝试用 find 命令替换 echo ,这是结果和错误。

#!/bin/sh


# Test for network conection
for interface in $(find /sys/class/net -mindepth 1 | grep -v …
Run Code Online (Sandbox Code Playgroud)

linux shell-script echo openwrt ash

1
推荐指数
1
解决办法
1983
查看次数

标签 统计

ash ×1

echo ×1

linux ×1

openwrt ×1

shell-script ×1