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

スクリプトは、スタンドアロンの実行可能プログラムにコンパイルされるのではなく、インタープリタープログラムによって実行される一連のコマンドまたは命令です。

2
/etc/resolv.conf.dを配置して/etc/resolv.confを変更する「正しい方法」は何ですか?
私は昔、resolv.conf静的で、自分で編集しました。 その後、DHCPクライアントは、いくつかの静的エントリとDHCPリースから取得したものを使用して、それを書き換えます。 最近、いくつかのディストリビューション-私のように(Linux Mint 18.1)は、/etc/resolv.conf.dスクリプトのいくつかのサブディレクトリを持つメカニズムを持っています。 では、正しい方法は何ですか DHCPリースで取得したDNSサーバーを使用するか使用しないかを示すには? 常に、またはDHCPリースで取得したネームサーバーがない場合のフォールバックとして、resolv.confに固定エントリを追加するには? ファイル内の相対的な順序について決定するには? 自分でスクリプトを書いても構いません。既存のメカニズムに「反抗」したり、重複したりしたくないだけです。

4
ネストされたループでシェルスクリプトを終了する
ネストされたループを持つシェルスクリプトがありますが、「exit」は実際にはスクリプトを終了せず、現在のループのみを終了することがわかりました。特定のエラー条件でスクリプトを完全に終了する別の方法はありますか? 許容可能なエラーがあり、多くの書き換えが必要になるため、「set -e」を使用したくありません。 現在、私はkillを使用して手動でプロセスをkillしていますが、これを行うにはもっと良い方法があるはずです。
11 bash  shell  scripting  exit 

2
プログラムでパスワードを変更する
現在のバージョンのRaspianでは、現在ログインしているユーザーのパスワードをコマンドラインから次のように変更できることを知っています。 sudo passwd 次に、ユーザーに新しいパスワードを2回入力するように求めます。これにより、次のような出力が生成されます。 Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully シェルスクリプトからのように、プログラムでパスワードを変更する方法があるかどうか疑問に思っていました。 Raspberry Piに展開する構成スクリプトを作成しようとしています。手動で新しいパスワードを入力する必要はありません。

7
最終更新日に基づいてディレクトリ内のファイルを再帰的にソートします
最終更新日に基づいてディレクトリ内のファイルを再帰的にソートします 私は自分のディレクトリ内の多くのファイルを変更しましたが、それらのファイルが最後に変更された日付で並べ替えることによってそれらのファイルが何であるかを知りたいので、一部の拡張機能を除外します svnディレクトリには、ソートに表示したくない.svnファイルもたくさんあります
11 shell  scripting  find  sort 

2
ファイル名にスペースがあるスクリプトの問題
scpがリモートホストからローカルにファイルを戻すスクリプトを持っています。ファイル名にスペースが含まれている場合があります。scpは、ファイル名にスペースが含まれていないことを好みません。何らかの理由で、スペースを処理する私の試みは正しいscpパスをもたらしませんでした。 コード: PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg scp $PATH Me@10.1.10.33:/Users/Me/Desktop 結果 Cannot find directory: var/root/Documents/MyFile Cannot find directory: OG-v1.2.3.pkg PATHを引用符で囲むと"$PATH"、同じエラーが発生します。 エスケープされたスペースとスペースの交換も機能しませんが、私が知る限り、次のようにする必要があります。 ESC_PATH=${PATH/' '/'\ '} エスケープされたパスを印刷すると、編集が機能したことが示されますが、 echo $ESC_PATH > /var/root/Documents/MyFile\ OG-v1.2.3.pkg

2
ループ出力のパイピングは、ローカル変数の変更を防ぎます
私は、引数として多数のファイルやディレクトリを受け取る単純なbash関数を記述しようとしています。そうすべき: ファイル名を完全に修飾します。 それらを並べ替えます。 重複を削除します。 実際に存在するものをすべて印刷します。 存在しないファイルの数を返します。 私はほとんど私がやりたいことをするスクリプトを持っていますが、ソートに落ちます。現状のスクリプトの戻り値は正しいですが、出力は正しくありません(ソートされておらず、重複しています)。| sort -u示されているようにステートメントのコメントを外すと、出力は正しくなりますが、戻り値は常にになり0ます。 NB問題を解決するためのよりシンプルなソリューションは歓迎されますが、問題は、なぜこれが私が持っているコードで発生するのかについてです。つまり、パイプを追加すると、スクリプトが変数をインクリメントするように見えるのはなぜrですか? スクリプトは次のとおりです。 function uniqfile { local r=0 for arg in "$@" do readlink -e "$arg" || (( ++r )) done #| sort -u ## remove that comment return $r }

4
リモートコンピューターがssh /スクリプトアクセスのためにオンラインであることを確認するにはどうすればよいですか?
ラップトップからUbuntuサーバーにデータをバックアップするスクリプトを書いています。そのために、バックアップを開始する前にサーバーが使用可能かどうかをテストする(ba)shコマンドを探しています。pingブール値を返すポート22のようなもの。 これどうやってするの?

2
ファイルを圧縮するときにディレクトリを除外する
私は次のようなことをするbashスクリプトを持っています: zip -0 ../backup/backup.zip \ -r ./* \ -x \*CVS\* \ -x *Thumbs.db* \ バックアップしているディレクトリはSVNアーカイブです(以前はCVSでした)。.svnとその内容を除外することができませんでした。.svnを(ツリー全体を再帰的に)除外する最もクリーンな方法は何ですか?
11 bash  scripting  zip 

1
プロセスに出力を送信するシェルスクリプトを作成する方法
現在、サーバーコンソールプログラムを画面で実行しています。これは、それを読んだり、時々コマンドを送信したりする必要があるためです。 アプリをバックグラウンドでデーモンとして実行したい(initで起動/停止)。 tail -fログを記録することはできましたが、それではプロセスに入力を送信できません。 入力を読み取り、送信できるように設定する方法はありますか?それでもバックグラウンドで実行していますか? また、さまざまなプロセスからデーモンへの入力を送信できるようにもしたいと思います(たとえば、「Stop \ n」コマンドを送信できるシェルスクリプト)。

3
ファイルを置き換えるときにファイルのアクセス許可を維持(または復元)する
ファイルを引数として受け入れ、ファイルを変更してから、2番目の引数で指定されたファイル名に書き込むコマンドがあります。私はそのプログラムを呼びますmodifyfile。 「そのまま」動作するようにしたいので、一時ファイルに変更してから元に戻すシェルスクリプト(bash)を作成しました。 TMP=`mktemp` modifyfile "$original" "$TMP" mv -v "$TMP" "$original" これには、このファイルの権限を破壊するという不幸な副作用があります。ファイルはデフォルトの権限で再作成されます。 mv権限を変更せずに宛先を上書きするようにコマンドに指示する方法はありますか?または、元のユーザー、グループ、および権限を保存して復元する方法はありますか?

5
ユーザーのデスクトップが読み込まれたときにスクリプトから検出する方法は?
私は、bashで実装されcron、@rebootオプションを使用して実行されている、デスクトップが非アクティブであることを示すデーモンを持っています。スクリプトは次のとおりです(タイミングはテスト目的で短くなっています)。 #!/bin/bash P_STATE=0 while : do sleep 5 if [ $P_STATE == 0 ]; then [ `xprintidle` -ge 25000 ] && P_STATE=1 && wmctrl -k on else [ `xprintidle` -le 25000 ] && P_STATE=0 done 問題:ユーザーがまだログイン画面xprintidleなどにいwmctrlて、デスクトップがまだロードされていないために失敗した場合。これを回避するために、スクリプトの最初に次の行を追加しました。 while: do sleep 10s [ -n `who | grep "$USER"` ] && break done …

5
statを使用してタッチのタイムスタンプを提供する
一部のドキュメントをその場でOCRしようとしています(Windows共有のLinuxコマンドラインから)。OCRのプロセスはfindであり、findコマンドを使用してファイルをループで正しくパイプ処理することで混乱しています。 ただし、変更のために元のタイムスタンプを保持する必要があります。私は現在、以下のようにstatとtouchを使用しようとしています: #!/bin/bash OLDIFS=$IFS IFS=$(echo -en "\n\b") for f in `find /mnt/library/Libra/Libra/Ashfords -name "*.pdf"` do ORIGTS=`stat -c "%Y" $f` sudo /opt/ABBYYOCR9/abbyyocr9 -rl English -pi -if $f -f PDFA -paemImageOnText -pafpr original -of $f touch -t $ORIGTS $f done IFS=$OLDIFS もちろんタッチコマンドは失敗します。コマンドを個別に実行すると、 "stat -c"が次のようになります。 1334758696 それは私が知らない日付のようなものです。近くにいるような気がしますが、日付をタッチフレンドリーなバージョンに変換する方法がわかりません。何かからの秒の形ですか?
11 bash  scripting  stat 

3
大きなフォルダー階層でテキストを置き換える方法は?
いくつかのインスタンスを除いて、ファイルの大規模なセットの一部のテキストを検索して置換したい。各行について、その行を置き換える必要があるかどうかを尋ねるプロンプトが必要です。vimに似ていますが(確認を求めるプロンプト:%s/from/to/gcが表示さcれます)、一連のフォルダーに渡ります。使用できる優れたコマンドラインツールまたはスクリプトはありますか?

4
SCP(コピー)を使用する場合、どのようにパスワードを保存できますか?
SCPを使用して別のマシンから自分のマシンにファイルをプルすると問題が発生します。ファイルは正常に転送されましたが、毎回パスワードを要求します。このSCPコマンドをとして実行したいのcronjobですが、この自動化のパスワードを保存するにはどうすればよいですか? scp user@abc.com:/usr/etc/Output/*.txt /usr/abc/ user@abc.com's password:
11 scripting  scp 

1
'mail'を使用してコマンドラインからメールを読む
mail端末でコマンドを使用してmail、インタラクティブモードでプログラムの使用を開始できることを知っています。 しかし、mailコマンドを使用して非対話的にメールを読みたいです。 次のようなコマンドはありますか $ mail -optionToReadMail -mailNumber 1; どちらが標準出力に電子メールのコンテンツを表示しますか?
11 bash  scripting  mailx 

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