linux - 如何用shell脚本将tun0的当前IP写入txt文件?

标签 linux ubuntu sh putty ifconfig

#!/bin/sh
/sbin/ifconfig tun0 | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}' > ./tun0_ip.txt

当我将其放入命令行时,效果非常好。 但是它不适用于 sh 脚本。

我做错了什么? 为什么有些命令不能与 sh 脚本一起使用?

~$ bash -x ./reset.sh
+ echo /sbin/ifconfig tun0
+ grep 'inet addr:'
+ cut -d: -f2
+ awk '{print $1}'

最佳答案

奇怪的是,您正在使用 bash 进行测试,同时将 #!/bin/sh 作为 shebang 行。

但这可能不是它不起作用的原因。当然,无论您是从命令行还是从具有完全相同环境的脚本运行某些命令,它们都不应该给出不同的结果。

也许调用脚本的用户有不同的语言环境,因此 ifconfig 的输出不再是“inet addr”而是其他内容?或者某些改变 ifconfigs 输出形式的环境变量未导出?

只有一步步走下去,你才能找到答案。看看脚本,应该是 ifconfig 没有给你你所期望的一些问题。因此,只需查看脚本的输出(未更改)即可。

关于linux - 如何用shell脚本将tun0的当前IP写入txt文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199776/

相关文章:

ruby-on-rails - 如何在 Rails 的目录结构中查找文件

php - 为 Laravel 5.1 配置 Apache2

bash - 在sh中对字符串的条件赋值

php - 用cgi生成网页,同时包含html和php

json - 使用 JQ 或任何 Linux 工具删除或解析 JSON 文件中的数据

android - osmdroid 的用户代理

Mongodb 无法启动 -> 显示奇怪的错误日志

mysql - 我安装了 MariaDB,它搞砸了 Mysql,我也无法卸载

linux - 将文件夹从未知位置移动到服务器上的不同位置

unix - 如何在Windows中运行.sh文件?