我正在运行Ubuntu Precise.在我的/etc/init.d中我有一个bash脚本,在启动时执行以下操作:
循环在NTFS驱动器上安装映像.该映像包含一个ext2文件系统,其目录名为home
然后使用--rbind选项进行挂载,将图像文件中的主页挂载到/ home.
到目前为止工作得很好,虽然在/ home中打开文件并不能防止循环挂载被卸载.
不幸的是,Nautilus在可移动驱动器列表中显示了环路安装,其图标允许用户卸载环路安装.卸载安装/ home的驱动器不利于运行良好的系统.
如何让Nautilus不显示这个环路安装设备?
man udisk(7)说udev数据库中的'有影响力的设备属性'之一是:
UDISKS_PRESENTATION_HIDE
如果设置为1,则这是对演示级软件的提示,不应向用户显示该设备.
我假设在/ dev/loop上设置此属性会告诉Nautilus不要显示设备.
如何在bash脚本中设置UDISKS_PRESENTATION_HIDE?
我使用列表分配将制表符分隔的值分配给不同的变量,如下所示:
perl -E '(my $first, my $second, my $third) = split(/\t/, qq[a\tb\tc]); say $first; say $second; say $third;'
a
b
c
Run Code Online (Sandbox Code Playgroud)
要忽略某个值,我可以将其分配给虚拟变量:
perl -E '(my $first, my $dummy, my $third) = split(/\t/, qq[a\tb\tc]); say $first; say $third;'
a
c
Run Code Online (Sandbox Code Playgroud)
我不喜欢有未使用的变量。还有其他方法吗?
我在Windows 10下使用Perl和Ubuntu.我想使用Perl Config :: Tiny模块来读取文件名和其他配置数据.当我在Linux中读取在Windows下创建的配置文件时,它将Carriage Returns保留在值的末尾.我目前通过在Linux下制作配置文件的临时副本来解决这个问题.
有没有办法告诉Config :: Tiny-> read()打开配置文件与行结束处理,做我想要的?
这是我当前代码的一个片段:
use Config::Tiny;
my $configfile = 'MyScript.ini';
# ; MyScript.ini file looks like:
# [MyScript]
# infilename=Dii.fwdata
# outfilename=Dii.1.fwdata
# logfilename=Dii.ReverseMerge.log
# someotherconfig=xyzzy
say STDERR "read config from:$configfile";
# Windows CRLF nonsense
if ( $^O =~ /linux/) {
`perl -pe 's/\r\n/\n/' < $configfile >/tmp/$configfile `;
}
my $config = Config::Tiny->read($configfile);
my $infilename = $config->{MyScript}->{infilename};
my $outfilename = $config->{MyScript}->{outfilename};
# ... etc,
Run Code Online (Sandbox Code Playgroud)