#!/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/