セットアップ:
私は2つの場所でノートブックを使用しています。各場所で、コンピューターはDHCPを介してIPアドレスを受け取ります。このIPアドレスは場所によって異なりますが、場所ごとに一定です。さらに、各場所にはプリンターがあります。
仕事:
両方のプリンターを構成しましたが、IPに従ってデフォルトのプリンターを設定したいと思います。この目的のために、スクリプトを作成し、それをの下/etc/network/if-up.d/set-default-printer
に置いて、lpoptions -d
実際にデフォルトのプリンターを設定します。
脚本:
#!/bin/sh
ip_A="1.1.1.1"
ip_B="2.2.2.2"
pr_A="Printer-A"
pr_B="Printer-B"
ip=$(hostname -I | cut -d " " -f 1)
if [ $ip = $ip_A ]; then
lpoptions -d $pr_A
touch /home/user/A
fi
if [ $ip = $ip_B ]; then
lpoptions -d $pr_B
touch /home/user/B
fi
問題:
残念ながら、デフォルトのプリンターはスクリプトによって変更されません(lpoptions
追加の引数なしで確認できます)。
さらなる診断:
- スクリプトは、コンテンツを貼り付けるか、コマンドラインから呼び出すだけで機能します。
- スクリプトは、
if-up
-mechanism によって実行されます/home/user/(A|B)
。これは、filesの作成によって検証されます。 - 特に、1または2に続くスクリプトファイル自体は実行可能です。