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

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

4
コマンド出力を個々の行に分離する方法
list=`ls -a R*` echo $list シェルスクリプト内では、このechoコマンドは、現在のディレクトリからRで始まるすべてのファイルを1行で一覧表示します。各アイテムを1行に印刷するにはどうすればよいですか? 私は起こってすべてのシナリオのための一般的なコマンドを必要としls、du、find -type -dなど、
12 bash  scripts 

2
ファイルを削除するときに特定のファイルとディレクトリを除外する
私の最上位ディレクトリはdataです。data複数のディレクトリが含まれ、これらのディレクトリにはサブディレクトリがあります。data/一部のディレクトリ内のいくつかのファイルを除き、内部のすべてのファイルとディレクトリを削除する必要があります。 たとえば、データにはディレクトリ100とが含まれ101ます。私は維持したいa.txtとb.txtのファイルに100/し、c.txtかつd.txt内のファイル101/内の他のすべてのファイルとディレクトリを除去しながら100と101。 例: . ├── 100 │ ├── a.txt │ ├── b.txt │ ├── c.txt │ └── d.txt └── 101 ├── a.txt ├── b.txt ├── c.txt └── d.txt rm -rf !(a.txt|b.txt)コマンドを使用していますが、このコマンドを各ディレクトリに自動的に適用することはできません。

7
スクリプトから/ファイルシステムのUUIDを取得します
/ファイルシステムを含むボリュームのUUIDを取得するにはどうすればよいですか?私が今までに見つけた最高のものはであるblkid -o list。しかし、この出力は人間が読めるものであり、解析が困難です。おそらくもっと良い方法がありますか? システム固有のテンプレートで構成管理をパラメーター化するために必要です。 blkid将来的に私の質問の結果を再利用する可能性のある人のための落とし穴に関する注意:blkidでの以前の実行の結果をキャッシュし/etc/blkid.tabます。つまり、blkid最初に非rootユーザーとして実行してもデータは返されません。また、blkidrootの実行後にroot以外のユーザーとして実行すると、古い(誤った可能性のある)データが返されます。

4
条件が失敗したときにbashスクリプトを停止する方法は?
ここでは、||と&&を1行で使用してコマンドの実行を連結することを示しています。bashスクリプトでapt-getエラーを確認するにはどうすればよいですか? 特定の条件が失敗した場合、スクリプトの実行を停止しようとしていますが、 例えば false || echo "Obvious error because its false on left" && exit ここでObvious error because its false on the leftは、コンソールを表示して終了します。これは、私が望んでいたものです。 true || echo "This shouldn't print" && exit ここでは、エコー出力はありませんが、exitコマンドも実行されます。つまり、コンソールが閉じられexitます。右側のエコーコマンドが実行されなかったため、コマンドは実行されませんか?または、デフォルトでは、&&演算子の左側のステートメントは偽と見なされますか? 編集:私は前にそれを言及する必要がありました、私の目的はエラーをエコーし​​、明確でない場合終了することでした。&&および||を使用して条件をグループ化するときにエラーをキャッチするという特定のケースについては、@ bodhi.zazenの回答が問題を解決します。 @takatakatekの回答により、フロー制御がより明確になり、bashガイドリンクが優れています @muruの回答には、より堅牢な方法であるperlとtrapを使用する代替手段でカスタムエラーメッセージをスローする場合、set -eを使用しない理由の良い説明があり、2番目のbashスクリプト以降でそれを使用していることがわかります!

5
シェルスクリプトを使用して、テキストファイルの値を列化されたファイルに出力する方法
次のようにシェルスクリプトを実行すると、output.txtがあります。 abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2.txt Sat Nov 12 03:00:09 2016 テキストファイルには、同じ方法で行ごとに複数のエントリがあります。これらの値を次の列に出力します:Filename、Status and Timestamp as following: Filename Status Timestamp abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2 Sat Nov 12 03:00:09 2016


3
rmはコマンドラインでは機能しますが、スクリプトでは機能しません
私が行うとrm *.old.*、コマンドライン上では正常に削除しますが、私は私のスクリプトの以下の部分でそれを行うとき、それはすべてのRMいない*.old.*ファイルを。 私のbashスクリプトの何が問題になっています: for i in ./*; do if [[ -f $i ]]; then if [[ $i == *.old.* ]]; then oldfile=$i echo "this file is to be removed: $oldfile" rm $oldfile exec 2>errorfile if [ -s $errorfile ] then echo "rm failed" else echo "removed $oldfile!" fi else echo …
11 bash  scripts  rm 

2
ls [13]とls {1,3}の違いは何ですか?
コマンドを使用して、ディレクトリに3つのファイルを作成しましたtouch inv{1..3}.txt。ここで、2つのコマンドを使用しましたが、それらの出力はほとんど同じです。これらの2つのコマンドはあるls inv[13].txtとls {1,3}.txt。 それでは、これら2つはどう違うのでしょうか?中かっこと比較して角かっこはどう違いますか?また、「linux [..]」を探していましたが、何も見つかりませんでした。そのため、これらの用語がLinux用語で何と呼ばれているのかを知ることができましたか? ありがとう

2
現在の画面(またはウィンドウ)を強調表示する方法は?
私は職場で2つの画面設定を使用していますが、通常は痛い以上の助けになりますが、いくつかの問題があります。 そのうちの1つは、後続のフォーカスに関する問題です-間違った画面で入力を間違えることがあります(フォーカスがカーソルの末尾にありますが、急いでいるときに他の画面にカーソルがあることに気付くのは必ずしも簡単ではありません)。入力する代わりに、さまざまなアクション(Thunderbirdの1つのキーのショートカット)を大量に発生させると、これは非常に面倒です。 アクティブな画面またはウィンドウを強調表示する方法はありますか(たとえば、最大化されたウィンドウでも、見やすい境界線を使用するなど)。 編集: ウィンドウがフォーカスされたときの素晴らしい解決策は、ある種の短いアニメーションだと思います。

3
予期しないトークン `( '付近の構文エラー
Ubuntuターミナルで以下のコードを使用すると、正常に機能します。 rm !(*.sh) -rf しかし、シェルスクリプト(clean.sh)に同じ行コードを配置して、ターミナルからシェルスクリプトを実行すると、エラーがスローされます。 clean.shスクリプト: #!/bin/bash rm !(*.sh) -rf 私が得るエラー: ./clean.sh: line 2: syntax error near unexpected token `(' ./clean.sh: line 2: `rm !(*.sh) -rf' 手伝ってくれますか?

3
シェルスクリプトの問題:誤って停止したときにMySQLサーバーを再起動するcronジョブスクリプト
このスクリプトがあります。このスクリプトを使用してCRONジョブをセットアップし、MySQLサービスが実行されているかどうかを確認できます。そうでない場合は、MySQLサービスを再起動します。 #!/bin/bash service mysql status| grep 'mysql start/running' > /dev/null 2>&1 if [ $? != 0 ] then sudo service mysql restart fi cronジョブをセットアップしました。 sudo crontab -e そして追加しました、 */1 * * * * /home/ubuntu/mysql-check.sh 問題は、cronジョブを実行するたびにMySQLを再起動することです。サーバーが実行されている場合でも、それを行うためのスクリプトの修正内容をMySQLサービスで再起動します。
11 bash  mysql  cron  scripts 

1
CSVファイルに基づいてファイル(画像)の名前を一括変更する方法
私が持っているものと達成したいもの: 1つのフォルダーに数千の画像があります。 次の列を含むCSVファイルがあります。 A:元の名前B:名前の変更 典型的な行は次のようになります。 "original-1.jpg","renamed-1.jpg" "original-2.jpg","renamed-2.jpg" 引用符を削除しても問題ありません。 次に、アプリを使用するか、列Aのすべての画像を検索し、列Bの名前に変更するスクリプトを実行します(たとえば、original-1.jpg-> renamed-1.jpg)。 周りにいくつかの答えがあります。例えば: http://ubuntuforums.org/showthread.php?t=1069652 http://systembash.com/content/one-line-batch-rename-files-using-csv-input-file-and-awk/ ただし、いくつかのスクリプティングが関係しており、これらのすべてのスクリプトがスクリプトを保存するフォルダーにのみ影響するのか、特定の条件を満たすディスク上のすべてのファイルの名前を変更できるのかはわかりません。もちろん、後者は避ける必要があります。 私が探しているのは、ファイルの名前を変更する方法と、ファイルを含むフォルダを選択する方法の簡単なガイドです。 前もって感謝します。

3
SSH接続後にサーバーでスクリプトを自動的に実行する
クライアントシステムがサーバーとのssh接続を確立した直後にサーバーでスクリプトを自動的に実行する方法 例:ユーザーがssh接続を使用して別のシステム(lan経由で接続)からコンピューターにログオンするとします。その時点で、システムでスクリプト(pythonまたはshell)を自動的に実行して検証を実行する必要がありますか サーバーシステムでスクリプトを自動的に実行する方法

1
ファイルを移動するBashスクリプト
私は初心者で、助けが必要です。 別のディレクトリのあるディレクトリからいくつかのファイルを移動するスクリプトを作成しようとしています。スクリプトを作成する前に、コマンドをテストしましたが、機能していました。 mv /path/to/source /path/to/destination スクリプトを作成した後nano: #!bin/bash/ echo "mv /path/to/source /path/to/destination" スクリプトを実行可能にした後:chmod +x file として実行しました./fileが、次のエラーが表示されます。 bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory 私は試してみてsudo ./file、bashファイルを使用しましたが、うまくいきません。 VirtualBoxと共にインストールされたUbuntuを使用しています。
11 scripts 

1
バッシュ比較演算子と式演算子
私はbashプログラミングが初めてです。私は2つの良い長いガイドを読みましたが、それらは演算子とキーワードについて私の頭を混乱させました。 より一般的で広く使用されているのはどれですか?いつ、なぜ使用するのかわかりません。 test、[[ ]]または[ ]あるいは(( )) $((exp)) または $[exp] -gtまたは>、geまたは>=など。 使用する場合<、および>/または( )エスケープする必要がある場合\: \< \(など。 ==または=(文字列比較) 私は基本的な違いを知っている[し、[[それ以外のご質問は、私にとっては謎です。 前もって感謝します

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