タグ付けされた質問 「shell-script」

シェルスクリプト、シェルによって解釈される実行可能ファイル(bash、zshなど)に関する質問。

3
`構文エラー:配列を作成するときの「(" unexpected`」
2台の(Debian)Linuxサーバーがあります。シェルスクリプトを作成しています。 最初に、こうして配列を作成します: #!/bin/bash target_array=( "/home/user/direct/filename -p123 -r" ) それはうまくいきます。しかし、他のサーバーでこれを実行すると、次のようになります: Syntax error: "(" unexpected 私の知る限り、両方のサーバーは同じです。なぜこれがうまくいかないのか、誰かが光を当てることができますか? ターミナルに直接入力すると問題ありませんか? 私がそれを実行すると sh scriptname.sh エラーが表示されますが、次のように実行すると ./scriptname.sh 大丈夫そうです。違いは何ですか?

3
可変コンテンツを読み取るよりもファイルを開くのが速いのはなぜですか?
ではbashスクリプト私はからのさまざまな値必要な/proc/ファイルを。今までは、そのようにファイルを直接grepする数十行がありました。 grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo それをより効率的にするために、ファイルの内容を変数に保存し、それをgrepしました: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' ファイルを複数回開くのではなく、一度開くだけで変数の内容をgrepする必要があります。 bash 4.4.19 $ time for i in {1..1000};do grep ^MemFree /proc/meminfo;done >/dev/null real 0m0.803s user 0m0.619s sys 0m0.232s bash 4.4.19 $ a=$(</proc/meminfo) bash 4.4.19 $ time for i in {1..1000};do echo "$a"|grep ^MemFree; done …

4
シェルスクリプトの「sudo su」がスクリプトの残りをルートとして実行しないのはなぜですか?
サンプルスクリプトは次のようになります。 #!/bin/bash sudo su ls /root ./test.sh通常のユーザーとして使用する場合、代わりにlsスーパーユーザーとして実行して終了し、ルートに切り替えます。ログアウトするls /rootと、通常のユーザーとして実行されます。 誰かがそれについてのメカニズムについて教えてもらえますか?
36 shell  shell-script  sudo  root  su 

3
単一のコマンドでバックグラウンドで複数のプログラムを実行するにはどうすればよいですか?
単一のコマンドでバックグラウンドで複数のプログラムを実行するにはどうすればよいですか? 以下のコマンドを試しましたが、機能しません。 nohup ./script1.sh & && nohup ./script2.sh & -bash: syntax error near unexpected token '&&' nohup ./script1.sh & ; nohup ./script2.sh & -bash: syntax error near unexpected token ';'

12
桁区切り記号を数字で追加します
Pythonで re.sub(r"(?<=.)(?=(?:...)+$)", ",", stroke ) 番号をトリプレットで分割するには、たとえば: echo 123456789 | python -c 'import sys;import re; print re.sub(r"(?<=.)(?=(?:...)+$)", ",", sys.stdin.read());' 123,456,789 bash / awkで同じことをする方法は?








1
どうやって !!バッシュで働く?
コマンドの先頭でsudoを忘れた場合に非常に便利!!で、前のコマンドのエイリアスのように機能します。例: $ mv /very/long/path/for/a/protected/sensible/file/caution.h . (...) Permission denined $ sudo !! sudo mv /very/long/path/for(...) . [sudo] password : このダブル!!トリックをどのように呼び出すのですか?そのトークンのため、インターネットでの研究は困難です。 どのように機能しますか?historyコマンドとのリンクが疑われます。 定義されている場所 他に自分で定義できますか? 編集:いくつかの興味深いイベント指定子 !!:* 前のコマンドの引数を参照します。使用事例 : cat /a/file/to/read/with/long/path nano !!:* :p コマンドを実行せずに印刷するだけで、イベント指定子の最後に配置する必要があります。 $ !-5:p sudo rm /etc/fstab -f 詳細はこちら。


6
ファイル内でn個の最も頻繁な単語を見つける
たとえば、テキストファイルで最も一般的な10個の単語を見つけたいです。まず、キーストローク(つまり、私の時間)に合わせてソリューションを最適化する必要があります。第二に、パフォーマンスのため。ここに私がトップ10を獲得するために持っているものがあります: cat test.txt | tr -c '[:alnum:]' '[\n*]' | uniq -c | sort -nr | head -10 6 k 2 g 2 e 2 a 1 r 1 k22 1 k 1 f 1 eeeeeeeeeeeeeeeeeeeee 1 d Java、Pythonなどのプログラムを作成して、(word、numberOfOccurences)を辞書に保存して値をソートするか、MapReduceを使用できますが、キーストロークを最適化します。 誤検知はありますか?もっと良い方法はありますか?

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