所以我一直在 linux 上使用 'sed' 一段时间,但是在尝试在 OSX 上使用它时遇到了一些困难,因为 'POSIX sed' 和 'GNU sed' 有很多细微的差别。目前我正在努力解决如何在某个行号后插入一行文本。(在本例中,第 4 行)
在 linux 上,我会做这样的事情:
sed --in-place "4 a\ mode '0755'" file.txt
Run Code Online (Sandbox Code Playgroud)
所以在 OSX 上我试过这个:
sed -i "" "4 a\ mode '0755'" file.txt
Run Code Online (Sandbox Code Playgroud)
但是,这一直给我一个“命令末尾\ 后的额外字符”错误。任何想法这里有什么问题?我有错别字吗?还是我不明白 sed 版本之间的另一个区别?
我一直在努力让我的 IRC-Bouncer/Notification 脚本工作。
这是一个脚本,它将自动登录到远程机器,附加到一个运行 weechat 的屏幕会话(如果当前不存在,则启动一个),同时打开另一个使用 netcat 从套接字文件读取通知的 ssh 连接weechat 附加脚本将我的通知消息导出到其中。然后将这些通知送入 lib-notify(通过通知发送),以便我可以在 weechat 中收到活动警报。
这是脚本:
#!/bin/bash
BOUNCER="MYUSER@MYBOUNCER.NET"
function irc_notify() {
ssh $BOUNCER "nc -k -l -U /tmp/weechat.notify.sock" | \
while read type message; do
notify-send -i weechat -u critical "$(echo -n $type | base64 -di -)" "$(echo -n $message | base64 -di -)"
done
}
# Start listening for notifications
irc_notify &
# Attach to remote IRC Bouncer Screen
ssh $BOUNCER -t 'screen -d -R -S irc weechat' …Run Code Online (Sandbox Code Playgroud) 我有一台运行实时数据库的 CentOS-6 机器。/mnt目录有问题。ls由于某种原因,我无法访问该目录。 stat正在工作并显示此输出:
File: `/mnt/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: ca02h/51714d Inode: 16321 Links: 9
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2011-09-23 06:50:20.000000000 -0500
Modify: 2012-10-29 11:46:33.000000000 -0500
Change: 2012-10-29 11:46:33.000000000 -0500
Run Code Online (Sandbox Code Playgroud)
我也可以cd进入该目录并成功发出touch和mkdir命令(或至少没有错误。但是,如果我尝试ls在该目录中运行它只是挂起。此时Ctrl+C和Ctrl+Z都没有任何效果,我的系统会锁定。我必须关闭我的 ssh 窗口并重新连接才能做其他事情。
我在这里有点不知所措,有没有人知道可能导致这种情况的原因?或者,有没有人知道如何在不重新启动机器的情况下尝试修复它(我之前在另一台机器的同一目录上遇到过这种情况,并通过重新启动进行了纠正),因为这是一台实时机器,我可以'实际上重新启动。
这些是安装在该目录中的文件系统:
blob.XXXXX.com:/blend on /mnt/blend type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
blob.XXXXX.com:/new_log on /mnt/new_log type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072) …Run Code Online (Sandbox Code Playgroud)