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

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

7
引用符付きのbash awkコマンド
私はしばらくの間、この質問に対する答えを見つけようと努めてきました。awkからの出力に基づいてコマンドを実行する簡単なスクリプトを書いています。 ID_minimum=1000 for f in /etc/passwd; do awk -F: -vID=$ID_minimum '$3>=1000 && $1!="nfsnobody" { print "xfs_quota -x -c 'limit bsoft=5g bhard=6g $1' /home "}' $f; done 問題は、-c引数が単一引用符で囲まれたコマンドを取り、それを適切にエスケープする方法を理解できず$1、ユーザー名に展開されないことです。 基本的に私はそれを出力させようとしているだけです: xfs_quota -x -c 'limit bsoft=5g bhard=6g userone' /home xfs_quota -x -c 'limit bsoft=5g bhard=6g usertwo' /home 等...
8 bash  shell  scripting 

6
小規模なプロジェクトで「make」を使用する利点は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 昨年休業。 これはmake、特にで説明されている複雑な依存関係がありMakefile、ワークフローにも役立つ大規模なプロジェクトに役立つことがわかりました。make小さなプロジェクトで使うことの利点は聞いていません。いずれかがあります?

2
dmesgで何かが見つかった場合にプロセスを強制終了する無限ループを作成するにはどうすればよいですか?
一部またはすべての値を返すwhile場合dmesgは、決定されたプロセスを強制終了するループを作成する必要があります。 これが私が持っているものです。 #!/bin/bash while [ 1 ]; do BUG=$(dmesg | grep "BUG: workqueue lockup" &> /dev/null) if [ ! -z "$BUG" ]; then killall someprocessname else break fi done 代わりに! -zやるべきかわからない[ test -n "$BUG" ] -nを使用すると、バイナリを期待することについて何かが示されます。 BUGのロックアップがすべてのプロセスを停止するため、スクリプトが機能するかどうかはわかりませんがdmesg、コンピューターが完全に停止するまでにはまだ数行あります。おそらく、追いつき、プロセスを強制終了できます。
8 linux  bash  scripting 

1
bashで独自のcp関数を作成する
割り当てについては、関数cp(コピー)と同じ基本機能を持つbash関数を巧みに書くように求められます。1つのファイルを別のファイルにコピーするだけなので、複数のファイルを新しいディレクトリにコピーする必要はありません。 私はbash言語に慣れていないため、プログラムが機能しない理由を理解できません。元の関数は、ファイルが既に存在する場合はファイルの上書きを要求するので、それを実装しようとしました。それは失敗します。 ファイルは複数行で失敗しているように見えますが、最も重要なのは、コピー先のファイルがすでに存在するかどうかを確認する状態です([-e "$2"])。それでも、その条件が満たされた場合にトリガーされるはずのメッセージ(ファイル名...)が表示されます。 誰かがこのファイルを修正するのを手伝ってくれませんか?おそらく私の言語の基本的な理解に役立つ洞察を提供していますか?コードは以下の通りです。 #!/bin/sh echo "file variable: $2" if [-e file]&> /dev/null then echo "The file name already exists, want to overwrite? (yes/no)" read | tr "[A-Z]" "[a-z]" if [$REPLY -eq "yes"] ; then rm "$2" echo $2 > "$2" exit 0 else exit 1 fi else cat …

4
2つのURLリストを比較し、新しく追加されたURLを新しいファイルに出力します
最初に、URLのリストを含む2つのファイルを作成します。それらをoldおよびと呼びnewます。2つのファイルを比較したいのですが、newファイル内にないURLがファイルにある場合は、oldこれらをextra_urlsファイルに表示したいと思います。 ここで、diffコマンドの使用についていくつか読みましたが、これからわか​​ることは、情報の順序も分析することです。注文が出力に影響を与えたくありません。私は、余分なURLの中に欲しいnewに印刷されたextra_urlsファイル、それらはいずれかの他の2つのファイルに配置されているどのような順序に関係なく。 これどうやってするの?

2
whitepsacesを使用して複数のファイルから特定の文字を削除する
ディレクトリ内の多数の音楽トラックの名前を変更しようとしていますが、次のエラーが発生しました。 複数のファイルを移動する場合、最後の引数はディレクトリでなければなりません これはスクリプトです: for file in * ; do mv $file $(echo $file |sed 's/^.\{5\}//g') done これは空白のないファイルで機能しますが、このスクリプトをどのように変更しますか?
8 linux  bash  scripting  sed 

2
各ユーザーの.sshディレクトリをbashから取得する信頼できる方法は何ですか?
/ etc / passwdをaugtoolで解析できます: myuser=bob usershome=`augtool -L -A --transform "Passwd incl /etc/passwd" print "/files/etc/passwd/$myuser/home" | sed -En 's/\/.* = (.*)/\1/p'` ...しかし、少し複雑すぎるようです。 ユーザーのホームを表示するためのシンプルな専用ツールはありますか(変更にusermod使用できるなど)?

4
ifステートメントのあるawk
awkを使用してファイルから印刷しようとしていますが、出力が空です。これが私のコードです accountNum=$1 while read -r LINE || [[ -n $LINE ]] ; do awk -F',' '{ if($1==accountNum) { print $3.$2 } }' Accounts done < Accounts 私もこれを試しました: accountNum=$1 while read -r LINE || [[ -n $LINE ]] ; do echo $LINE | awk -F',' '{ if($1==accountNum) { print $3.$2 } …
8 shell  scripting  awk 

2
2つの完全に異なるものをgrepし、値を別々の変数に割り当てる最も効率的な方法は何ですか?
CentOS 6.x 2つの完全に分離された文字列のcurl、grepから出力を取得し、それぞれの値を変数として割り当てたいと思います。(出力をディスクに書き込まずに)これを行う最も効率的な方法は何ですか? 通常、次のようなスクリプトを作成することを考えます。 #!/usr/bin/env bash foo1=$(curl https://domain.com/file.xml | grep string1) foo2=$(curl https://domain.com/file.xml | grep string2) しかし、これは2つのパスを取得することになり、恐ろしく非効率的です。もっと良い方法はありますか?うまくいけば、より少ないパスを含むソリューションですか?

1
/ usr / bin / envが存在するという保証はありますか?
多くの場合、スクリプト#!/usr/bin/env interpreter_nameはすべてのインタープリターに使用するシバン行で始まり、さまざまなシステムがさまざまな場所にインストールして実行するために必要なインタープリターを備えているという根拠があります。たとえば、のようにpythonインストールされていると仮定/usr/bin/pythonすると/opt/python、何らかの理由でインストールを決定したユーザーは、簡単に使用できなくなります。 しかし、明らかな質問は、(またはその問題に関しては特定の場所に)envインストールされる保証があるのか/usr/bin/env、それとも、いわば「問題を移動する」場合に過ぎないのか、ということです。 このわずかに関連する質問には、それは悪いアイデアであり、インタープリターの実際のパスを使用してインストールすることが望ましいというコメントがあり、単一のUNIX仕様を引用していますが、この質問には実際には触れていません。
8 scripting  env 

3
rsync最新のx GB
最近変更されたファイル(最大10 GB)を別のコンピューターにコピーできるようにするコマンド/スクリプトを探しています。 したがって、4 GBのファイルがそれぞれ4 GBある場合、スクリプトによって転送されるのは2つだけです。1GBのファイルが12個ある場合は、最新の10個だけが転送されます。

1
これは、「find…-exec sh -c '…' sh {} +」を使用してコマンドをどのように機能させるのですか?
@StephaneChazelasがこのQ&Aに次の解決策を投稿しました:「find -exec {} +」の使用に問題があります。 $ find . -iname "*.extension" -exec sh -c ' exec <command> "$@" <additional parameters>' sh {} + ここで何が起こっているのですか?具体的には、最後sh {}は何をしますか?それは、-exec何かすることがあるように、NOOPであるように、findのコマンドを鎮静化するためだけにあるかのようです。 私はecho {}そこに簡単に置くことができ、それはうまく機能しているようです。

1
Linuxでのスクリプトの機能
実行可能ファイルcapabilities(7)などの機能()を設定したいがCAP_NET_BIND_SERVICE、そのファイルがスクリプトである場合、setcap(8)そのスクリプトを開始するインタープリターに機能()を設定する必要がありますか、それともスクリプトファイルに設定するだけで十分ですか?自体? 注:質問は特にScientific Linux 6.1に関するものですが、一般的には答えられると思います。

1
xscreensaverで画面がロックされているかどうかを確認するにはどうすればよいですか?
アラートについて考えています。画面がロックされている場合はそこにいないので、アラートをスマートフォンにプッシュする必要があると判断しました。現在、画面がロックされているかどうかはわかりません。Perlとxscreensaver-command -watchを組み合わせることもできますが、そのプロセスが常に実行されていることを確認する必要はありません。重すぎるようです。 行方不明のものはありますか?これはかなり明白です。

2
スクリプトhtdigest -c / path / to / file / $ user $ user $ password in Bash
変数$ passwordのパスワードを使用してスクリプトを作成できるようにしたいと思います。 htdigest -c /etc/apache2/pw/$user $user $password 現時点では、手動でパスワードを入力するように求められます。これは、PHPスクリプトによる自動セットアップになるため、不可能です。誰かがこれをスクリプト化する方法を教えてくれませんか?または同等のスクリプト可能な関数?

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