タグ付けされた質問 「scripts」

スクリプトは、「プレーンテキスト」ファイルに記述された一連の指示です。スクリプトインタープリター(たとえば、Bashまたは別のシェル、Python、Perl、Rubyなど)がファイルを読み取り、コマンドプロンプトで入力されたかのように指示を実行します。


3
端末コマンドの「不良」(0ではない)戻りコードを強制しますか?
私はPythonで記述されたフレームワークを持っています。テストの目的で、基本的にサブプロセス(別名シェル呼び出し)を実行したいのですが...単にRC!= 0で戻ってくるはずです。存在しない実行可能ファイルを呼び出そうとしました。または「exit 1」を実行します。しかし、これらは何らかの理由でFileNotFoundErrorに変換されます。 したがって、戻りコード!= 0をトリガーするために他に何ができますか(「信頼できる」方法で、将来の時点でコマンドが突然0を返さないことを意味します)。 exitというバイナリを「検索」しようと思ったのですが、 > /usr/bin/env exit /usr/bin/env: exit: No such file or directory

1
電源がプラグインまたはアウトされているときにスクリプトを実行するにはどうすればよいですか?
何らかの理由で、電源をプラグインまたはプラグアウトすると、ラップトップの画面の輝度が更新されません。私はその問題のかなりの数の解決策を見てきましたが、どれもうまく機能していないようです。それで、私は絶望してあきらめるのではなく、これを学習体験に変えて、私のためにそれを行うスクリプトを記述できないかどうかを確認することにしました。 もちろん、インターネットの助けを借りて、自分で考え出そうとしましたが、bashスクリプトとUbuntuは一般的にかなり新しいので、遠くまでは行けませんでした。 私は何を把握することができたことは、私ができるということでした、バッテリーの状態を見つけるとを $ upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep -E "state" state: charging/discharging ACアダプターが接続されているかどうかによって異なります。それが便利かどうかはわかりませんgrepが、すごくクールで、以前は使い方がわからなかったので、何を学ぶのが楽しいのでしょうか。 とにかく、これを行うにはいくぶんきれいな方法がありますか?「クリーンな方法」とは、bashスクリプトの経験が限られている方でも理解できる方法を意味します。 私が見つけた同様の質問の1つは、良い答えが得られたというもので、これは次のように述べています。 ACアダプターをプラグイン/アウトする/etc/pm/power.dと、引数が「true」(バッテリーで実行する場合)、または「false」(電源アダプターで実行する場合)でスクリプトが呼び出されます。 問題は、スクリプト内からその引数にアクセスする方法がわからないことです。結局のところ、かなり単純な問題に要約されると思いますが、人々がより良い解決策を持っている場合に備えて、私はとにかく質問を投稿すると思いました。

3
ファイル名を別のエンコーディングに変更するにはどうすればよいですか?
マウントされたハードドライブfile nameに3種類のエンコーディングがありますreiserfs:CP1251、KOI-8、UTF-8、ASCII。すべてのエンコーディングを再帰的にUTF-8に変換する必要があります。ソースエンコーディングを検出してUTF-8に変換するユーティリティはありますか、それともPythonスクリプトを記述する必要がありますか?

2
Dashを使用してスクリプトにコマンドライン引数を渡すにはどうすればよいですか?(14.04)
私は最近、Dashへのシェルスクリプトの追加について次の質問をしました。 14.04では、ターミナルを開かずに作成したbashスクリプトを実行するにはどうすればよいですか? それは完全に機能しました。 追加質問:Dashを使用してコマンドライン引数を渡すにはどうすればよいですか?例:この場合、私のダッシュコマンドの名前は "Panel"です。このスクリプトは、8つの端末で画面をパネルします。次に使用例を示します。 panel # Tile the screen with 8 terminal windows. panel --left # Tile the left side with 4 terminals panel --right # Tile the right side with 4 terminals 等々。ダッシュのように、--leftまたは--rightダッシュを介して引数を渡すにはどうすればよいですか?理想的には、このワークフローが欲しいです: SUPERキーを押す タイプpanel --left(例) ダッシュが消え、左側が羽目板になります。 現在は適切なスクリプトを実行し--leftますが、は無視します。 チップ?

2
CentOSの成功/失敗に相当するUbuntu
CentOSの多くのサービスは次のようになります(それぞれ緑と赤を除く)。 $ sudo service blah start Starting blah: [ OK ] $ sudo service notrunning stop Stopping notrunning: [FAILED] これは、/etc/init.dスクリプトが/etc/rc.d/init.d/functions呼び出されたsuccessおよびでユーティリティスクリプトを使用するために発生しfailureます。/etc/init.d/sshdCentOSのスニペットを次に示します。 echo -n $"Starting $prog: " $SSHD $OPTIONS && success || failure 私の質問は、ubuntuに相当するものはありますか?スクリプトをコピーすることもできますが、スクリプトは思ったよりも複雑です。必要がないのに、なぜホイールを再発明するのですか。

3
Unityログイン/ログアウトでスクリプトを実行するにはどうすればよいですか?
私は2つのスクリプトを持っています-1つはSSHFS経由でいくつかのフォルダーをマウントするためのもので、もう1つはマウント解除するためのものです。 デフォルトのUbuntuデスクトップが起動したときに(グラフィカルコンソールでログインした後)マウントスクリプトを起動し、右上の歯車から「ログアウト...」したときにマウント解除スクリプトを起動したいデスクトップ。 これを達成する方法を誰かに教えてもらえますか?デスクトップの起動/終了時にコマンドを実行するための最も便利で標準的なフックは何ですか?

3
シェルスクリプトでの文字列の評価
私はこのbashシェルスクリプトガイドに従っています: http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html 数値比較のセクションでは、例を挙げています。 anny > num=`wc -l work.txt` anny > echo $num 201 anny > if [ "$num" -gt "150" ] More input> then echo ; echo "you've worked hard enough for today." More input> echo ; fi 上記のように思われるのは、コマンドの文字列をbash変数に格納してから、変数に対してエコーを呼び出すことです。発生しているように見えるのは、文字列が評価されてwcコマンドが実行され、制御端末に行数が返されることです。 それでは、Ubuntu 12.04で端末を起動して、同様のことを試してみます。 $ touch sample.txt && echo "Hello World" > sample.txt …


2
contabを使用してbashスクリプトでScreenセッションを作成する
サーバーが起動するたびに.jarファイルを実行したいので(VPSを使用しています)、を使用してcrontabを編集しcrontab -e、を追加しました@reboot bash /home/bash/startserver.sh。しかし、スクリプトが機能するまでには至っていません。 これが私のスクリプトです: #!/bin/bash screen -S bukkit cd $HOME/server java -jar bukkit.jar 私が使用する必要がある理由screenは、bukkit.jarを開始すると、そのプログラムに追加のコマンドを入力できるコンソールに移動するためです(ただし、このサイトのMinecraftとそのサーバーについては、すべて知っているはずですが、 、笑)、しかし、実行中に他のコマンドをrootとして、また他のプログラムのために実行できる必要があり、さらにPuTTYセッションを閉じる必要もあります。 唯一の問題は、このスクリプトを実行するとスクリーンセッションが作成されますが、IDが空白であるため、IDがに表示されないことscreen -lsです。むしろ、私は/run/screen/S-rootIDを見つけるために行って、それから典型的なものscreen -X -S $name quitを使わなければなりません。 多分これは不可能であるかもしれません、または多分これを行う簡単な方法があります(私はもっと単純にしたいと思います)、しかしこれがなぜうまくいかないのか理解できません。そして、これが可能であるscreen -S bukkit場合、bashスクリプトを実行しているときにセッションに再参加することは可能ですか?(複数の質問だと思いますが、どうもありがとうございました!(括弧))

2
PIDの代わりに指定されたTCPポート番号を使用してキルするOnelinerコマンド?
私はしばしばします sudo netstat -lpn |grep :8088 出力を表示する tcp6 0 0 :::8088 :::* LISTEN 11189/java その後 sudo kill -kill 11189 killatport 8088変数としてtcpポート番号を使用し、パイプラインのエイリアスとして作成できる、より便利なコマンドが欲しいのですが、出力とパイプからPIDを取得するにはどうすればよいですか?キルコマンドに?私はawkを使用してnetstatからの出力からPIDを取得できると思いますが、入力80が8080と一致しないように、ポートを完全に一致させるにはどうすればよいですか?代わりにCプログラムにする必要がありますか?または、すでにこのような小さなユーティリティがありますか?

1
$ 0が-bashに設定されているのはなぜですか?
最初のログインプロセス名はに設定されているよう-bashですが、サブシェルの場合はになりbashます。例えば: root@nowere:~# echo $0 -bash root@nowere:~# bash root@nowere:~# echo $0 bash -bash 次のような一部のスクリプトが失敗します . /usr/share/debconf/confmodule exec /usr/share/debconf/frontend -bash Can't exec "-bash": No such file or directory at /usr/share/perl/5.14/IPC/Open3.pm line 186. open2: exec of -bash failed at /usr/share/perl5/Debconf/ConfModule.pm line 59 に$0設定されている理由を知っている人はい-bashますか?

1
Ubuntu 13.04でカスタムキーボードショートカットをbashスクリプトにリンクする方法
Ubuntu 13.04ユーザーとして、私はさまざまな問題とこの最新バージョンのUbuntuとの非互換性を私自身も持っていました。これらの1つは、いくつかのパッケージをインストールした後、明るさバーが「システム設定->明るさ&ロック」タブから突然消えたことです(パッケージの内容を本当に覚えていません)。回避策はxbacklightを使用することです。 私自身の練習として、ターミナルからxbacklightを使用して明るさを簡単に増減するために短いスクリプトを書きました。スクリプトは実行可能であり(実行権限があります)、. bashrcファイルの$ PATHに含まれているディレクトリであり、エイリアスにリンクされています(画面の明るさを上げるには「blup」、画面の明るさを下げるには「bldn」)。したがって、私の2つのエイリアス(blup / bldn)は、端末回線から完全に正常に動作します。次に、これらをいくつかのキーボードショートカット(たとえば、F2 / F3)にリンクします。「システム設定->キーボード->ショートカット->カスタムショートカット」で設定しましたが、機能しませんでした。 どうして? さらに、他の(非カスタム)キーボードショートカットコマンドが実行される場所と方法を「発見」する方法はありますか?たとえば、ボリュームアップショートカットは、それが実行する端末回線、接続されているエイリアス(存在する場合)、およびディレクトリ(/ usr / binなど)に配置されますか? スクリプト作成の初心者として、私はどんな種類の助けにも感謝します! ありがとう PS1もちろん、 'xbacklight -inc / -dec 10'コマンドをカスタムキーボードショートカットに貼り付けるだけで、問題なく動作します。機会をつかんで、スクリプトの作成と実行についてもう少し詳しく知りたいだけです。 PS2私の問題はこれと同じではありません。キーボードショートカットを使用してbashスクリプトを起動するにはどうすればよいですか?つまり、「/ home / user /」に「〜/」を使用しません。

1
ユーザーログアウト時のスクリプト実行(非rootユーザー)
私は大学の研究室で、ubuntu 12.10を1で実行していますが、root権限を持っていません。ログアウト時にスクリプトを実行する必要があります。これは可能ですか? 注:これはおそらくこの質問の複製ですが、指定された回答は非常に謎めいており、具体的な指示はありません。
8 scripts  root  logout 

3
ユーザーがGUIのみを使用して(端末を非表示にして)bashスクリプトのパスワードを入力できるようにする適切な方法
ユーザーとの対話専用にkdialogを使用するbashスクリプトを作成しました。「.desktop」ファイルから起動されるため、ユーザーには端末が表示されません。それは100%GUIアプリのように見えます(それは単なるbashスクリプトですが)。KDEのみで実行されます(Kubuntu 12.04)。 私の唯一の問題は、パスワード入力を安全かつ便利に処理することです。満足のいく解決策が見つかりません。 このスクリプトは、通常のユーザーとして実行され、sudoコマンドが最初に必要になったときにパスワードを要求するように設計されています。このように、sudo権限を必要としないほとんどのコマンドは、通常のユーザーとして実行されます。何が起こるか(スクリプトがターミナルから実行される場合)は、ユーザーはパスワードの入力を1回求められ、デフォルトのsudoタイムアウトにより、ユーザーに再度プロンプトを表示せずに、追加のsudoコマンドを含めてスクリプトを終了できます。これは、GUIの背後で実行したときにも機能する方法です。 主な問題はkdesudo、標準のGUI方法である私のスクリプトの起動にを使用すると、スクリプト全体がrootユーザーによって実行されることです。そのため、ファイルの所有権はrootユーザーに割り当てられ、私は~/パスに依存することができず、他の多くのものは理想的とは言えません。rootユーザーとしてスクリプト全体を実行することは、非常に不十分なソリューションであり、悪い習慣だと思います。 rootとしてスクリプト全体を実行せずに、ユーザーがGUIを介して1回だけsudoパスワードを入力できるようにするためのアイデアに感謝します。ありがとう。
8 bash  scripts  sudo  gui  kde4 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.