【发布时间】:2014-07-10 18:01:05
【问题描述】:
我创建了一个 bash 脚本文件:
#!/bin/bash
default_card=`head -1 /proc/asound/modules`
echo $default_card
if [ ! -e /etc/modprobe.d/sound.blacklist.conf ] ; then
echo "Default sound card(snd_hda_intel) is not added in black list"
/usr/bin/expect <<delim
exp_internal 0
set timeout 20
spawn sudo sh -c "echo 'blacklist snd_hda_intel' > /etc/modprobe.d/sound.blacklist.conf"
expect "password for ubuntu:"
send "1234\n"
expect eof
delim
else
echo "Default sound cardis already added in black list";
fi
我正在“/etc/modprobe.d”中创建一个黑名单文件。从“/etc”创建或删除任何文件都需要sudo 访问权限。
我想使用 Rake 任务在 Ruby 中实现相同的功能。我将任务创建为:
desc "Check/creates soundcard blacklist"
task :create_blacklist do
begin
if !File.exists?("/etc/modprobe.d/sound.blacklist.conf")
# code for creating new file and write into it
......
......
else
puts "Sound-card blacklist file is present at /etc/modprobe.d/sound.blacklist.conf"
end
rescue Exception => e
puts "problem creating file #{e.message}"
end
end
我不知道如何使用 sudo 创建新文件并写入。
我使用的是 Ruby 1.9.3(没有 RVM)。
【问题讨论】:
标签: ruby ruby-1.9.3 ruby-1.9