要将命令的输出存储为sh/ksh/bash中的变量,您可以执行任一操作
var=$(command)
Run Code Online (Sandbox Code Playgroud)
要么
var=`command`
Run Code Online (Sandbox Code Playgroud)
两种方法之间有什么区别?
有没有办法find执行我在shell中定义的函数?例如:
dosomething () {
echo "doing something with $1"
}
find . -exec dosomething {} \;
Run Code Online (Sandbox Code Playgroud)
结果是:
find: dosomething: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有没有办法让find的-exec看dosomething?
我让它工作正常,但现在停止了.我尝试了以下命令但无济于事:
docker run -dns 8.8.8.8 base ping google.com
docker run base ping google.com
sysctl -w net.ipv4.ip_forward=1 - 在主机和容器上
我得到的只是unknown host google.com.Docker版本0.7.0
有任何想法吗?
PS也被ufw禁用了
在我的学校,互联网不可用(每天晚上23:0学校将杀死互联网,让我们躺在床上.. ..),然后ping将永远不会停止,虽然我已经使用了参数ping -w1 ....
也就是说,当我使用:ping -q -w1 -c1 8.8.8.8检查互联网是否上/下时,它将在那里没有任何输出并且不会退出,就像我使用单个cat.
你能理解我的问题吗?我不知道为什么会这样,但我认为问题与学校互联网服务有关.有什么建议吗?(我认为wget可能是一个很好的选择,但如何使用?)
我在服务器上有以下 PHP 脚本,它将等待 10 秒并说Hello:
<php sleep(10); ?>Hello
Run Code Online (Sandbox Code Playgroud)
在客户端(节点),我有以下内容:
var http = require('http');
http.get ('http://example.com/sleep.php', function (resp) {
resp.on('data', function (d) {
console.log ('data!', d.toString());
});
resp.on('end', function (d) {
console.log ('Finished!');
});
}).on('error', function (e) {
console.log ('error:', e);
});
Run Code Online (Sandbox Code Playgroud)
问题是,如果在请求期间互联网连接停止,则不会触发errorORend事件。
要重现问题:
我还发现,如果连接在 10 秒内恢复,它仍然可以接收消息。
因此,我做了一个简单的间隔循环来检查状态。但是它无法检测连接是否已停止工作或仍在等待响应:
var http = require('http');
var lastRespond = 0, intervalCheck;
var respFinished = false;
http.get ('http://jixun.no-ip.org/sleep.php', function (resp) {
resp.on('data', …Run Code Online (Sandbox Code Playgroud)