即使使用 sudo 也无法从/sys/class/net/eth0/carrier 读取

标签 c linux shell linux-kernel ethernet

我正在尝试编写 shell 脚本以从/sys/class/net/eth0/carrier 中读取值,但它给了我“权限被拒绝”异常。我试图在 shell 脚本中编写的命令是

sudo echo $(/sys/class/net/eth0/carrier)

我还注意到,当我以 root 身份登录并尝试此操作时,我遇到了同样的异常:

echo $(/sys/class/net/eth0/carrier)

非常感谢任何试图读取执行 shell 脚本的值的帮助。

最佳答案

你的语法试图执行那个文件。如果你想把文件的内容放在一个变量中,做这样的事情(可能是 bash-only 语法):

foo=$(</sys/class/net/eth0/carrier)

或(便携)

foo=$(cat /sys/class/net/eth0/carrier)

如果你只是想把它打印到stdout:

cat /sys/class/net/eth0/carrier

关于即使使用 sudo 也无法从/sys/class/net/eth0/carrier 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306307/

相关文章:

C 程序两个日期之间的天数——输出稍微太高?

c - 使用 $PATH 变量确定最合适的安装位置

linux - 如果存在另一行,则 Bash 替换行

linux - 我如何在 Windows 上运行 Ubuntu 的/bin/bash

linux - 如何列出目录中最近删除的文件?

r - 如何通过 shell 从父目录获取 R 文件?

c++ - #pragma start 和 #pragma exit 的用例

c - 如何在c中为硬币翻转生成一个随机int值

linux - QProcess 传递(shell)参数

linux - 我如何在任何连接的 USB 声卡上播放任何音频文件?