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

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。

3
存在しないファイルのリストをタール化​​する
次のようなスクリプトからコマンドを実行しています tar -c -f ar.tar a b c d ここで、b、c、およびdは存在しない場合があり、ディレクトリである場合があります。私が思いついた解決策は、ls -dto の出力をパイプし、grepそれをtarコマンドにスプライスするか、の拡張グロブをオンにすること@(a|b|c|d)です。 これを行うよりきちんとした方法はありますか?私はDebian Wheezyを使用してい--includeますが、パラメーターがないようです。
10 shell  wildcards  tar 

3
読みながらバックスペースを処理する方法は?
入力されたバックスペースをどのように処理します^?か?試行されたかどうかread、および12^?3すでに5文字が完了したように文字を数える方法が表示されます(ただし、すべて実際の入力ではありませんでした)が12^?3^?、プロンプトが返された後、奇妙です。助けてください! -bash-3.2$ read -n 5 12^?3^?-bash-3.2$
10 bash  shell  line-editor  read 

3
bashでの$&の使用法は何ですか?
私はbashの特別なパラメータを調べていました。何が$&どのように違うのか知りたいです$_。 コマンドを実行すると次の出力が表示されますが、意味も見つかりませんでした。 k@Linux:~$ echo $& [1] 12397 $ k@Linux:~$ echo $n [1]+ Done echo $ k@Linux:~$
10 bash  shell 

1
IFSのデフォルト値を理解する
私のGNU bashバージョン4.2.8では、IFSにはデフォルトでスペース、タブ、およびラインフィードのデフォルト値があります。 usr@T42 ~ $ echo -n "$IFS" | hexdump -C 00000000 20 09 0a | ..| 00000003 usr@T42 ~ $ そのようなデフォルトのIFSには理由がありますか?さらに、bashビルトインの他にどのユーティリティがIFSを使用しreadますか?
10 bash  shell  quoting 

1
rootとしてログインすると、ターミナルにカラースキーマが表示されないのはなぜですか?
現在、Debian 7 Wheezyを使用していますが、rootとしてログインすると、ターミナルのカラーパレット(ファイルとフォルダーの大きなセットを識別するのに役立つ)が有効にならないことに気付きました。 同じように、この状況ではタブ補完が同じように機能しないことに気づきました。 これらの問題をどのように構成できますか?
10 bash  shell  root  colors 

4
サブディレクトリを含まないディレクトリを見つける
スクリプトはkshです。現在のディレクトリの直下にある、サブディレクトリではなくファイルのみを含むすべてのディレクトリ名を検索する必要があります。 ls -alR(dディレクトリの)最初のフィールドの最初の文字の出力を使用して再帰的に解析できることを知っています。awk解析して見つけるのに最適な方法だと思います。 たとえばls -al、現在のディレクトリの単純な出力は次のとおりです。 drwxr-xr-x 22 af staff 748 18 Mar 22:21 . drwxr-xr-x 5 root admin 170 17 Mar 18:03 .. -rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites …
10 shell  find  directory  ls  ksh 

4
Linuxでユーザーに初期/デフォルトパスワードを割り当てるにはどうすればよいですか?
ユーザーのパスワードの設定方法を説明したガイドを見つけました。私はそれを自動化して、次のようなユーザーに電子メールを送信しようとしています: userid created with password XYZ. request to change the initial password. 上記のドキュメントによると、Pythonを使用して暗号化されたパスワードを作成し、usermod次のようにコマンドに渡す必要があります。 usermod -p "<encrypted-password>" <username> これを行う他の簡単な方法はありますか?それを行うために特別なユーティリティをダウンロードしたくありません。可能な限り一般化する必要があります。 編集:上記のリンクで与えられた方法でさえ私にはうまくいかないようです: bash-3.00# python Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5 Type "help", "copyright", "credits" or "license" for more information. >>> import crypt; print crypt.crypt("<password>","<salt>") <sOMrcxm7pCPI >>> ^D bash-3.00# useradd …

4
変数を計算し、別の変数に出力します
私が知っている唯一の計算機はbcです。1変数に追加して、別の変数に出力したい。 nextnumファイル内の文字列をカウントして変数を取得しました。 nextnum=`grep -o stringtocount file.tpl.php | wc -w` nextnum値がであるとしましょう1。で追加1するとになり2ます。計算するには、次を実行します。 rownum=`$nextnum+1 | bc` エラーが発生しました: 1+1: command not found 計算に失敗しました。バックティックを変更しようとしましたが、まだ機能しません。変数を計算して別の変数に出力する方法がわかりません。

1
別のコマンドの単一引用符と二重引用符を含むコマンドをラップする
最近watchについて学びましたが、比較的高度なコマンドで動作させるのに苦労しています。 たとえば、3秒ごとにwatch次のコマンドを実行するように依頼します*:zsh for x in `command_1 | grep keyword | cut -d' ' -f1`; do command_2 "word[word=number]" $x; done 上記の行を見るとわかるように、他の特殊文字の中に、単一引用符、二重引用符が含まれています。 だから私は試しました: watch -n 3 "for x in `my_command | grep keyword | cut -d' ' -f1`; do command2 "rusage[mem=7000]" $x; done" しかし、私は得ました: !@#$#....;でxに一致するものが見つかりませんでした。終わった 他の組み合わせを試したが成功しなかった。これらの試みの1つを次に示します。 watch -n 3 "for x in …
10 shell  zsh  quoting 

2
乱数/単語のシーケンスを生成するための確率的バージョンのseq?
しばらく前に、私はseqのようなツールを使用して、一連の疑似ランダム生成数をstdoutに出力しました。範囲、シード、サンプル数などを指定できます。 このツールの名前を忘れてしまいました。誰かが私を助けてくれますか? たぶん、たとえば、異なる確率分布や、異なるアルファベットと長さ/文字の分布でのランダムな単語のシーケンスの生成をサポートする、より高度なツールを知っているかもしれません。

1
この競合状態をモデル化する確率分布は何ですか?
次のコマンドを検討してください bash -c "echo x; cat 1" | tee 1。 私の理解では、新しいシェルにフォークし、xstdoutに書き込みfile 1 not found、stderrに書き込み、終了して親プロセスに制御を返し、xstdoutとtoに書き込み1ます。したがって、私は最終的な出力がであることを期待しx、ファイル1には文字列が正確に含まれますx。 ただし、これは当てはまりません。実際には、ファイルに1は通常、の少なくとも2つのインスタンスが含まれx、時には数千行のxs が含まれます。コマンドを1万回実行するバッチテストでx、ファイルに書き込まれたsの平均数は52.3で、中央値は1でした。これを引き起こしているメカニズムは何ですか。この動作をモデル化する確率分布は何ですか?私はそれが条件付きで幾何学的で、それ以外は均一であると思います。
10 shell  files  pipe 



4
別のコマンドにパイプする前にコマンド出力を完全にバッファリングしますか?
一時ファイルなしでコマンドが実行された後にのみコマンドを実行する方法はありますか?もう1つの実行中のコマンドと、出力をフォーマットしてcurlを使用してHTTPサーバーに送信する別のコマンドがあります。実行するとcommandA | commandB、commandBが起動curlし、サーバーに接続してデータの送信を開始します。のでcommandAとても時間がかかり、HTTPサーバがタイムアウトになります。やりたいことができるcommandA > /tmp/file && commandB </tmp/file && rm -f /tmp/file 好奇心から、一時ファイルなしでそれを行う方法があるかどうか知りたいです。試してみましたmbuffer -m 20M -q -P 100が、カール工程はまだ始まったばかりです。Mbuffer commandAは、実際にデータを送信する処理が完了するまで待機します。(データ自体は最大で数百kbです)
10 shell  pipe  buffer 

2
Ctrl + Cで、現在のコマンドを強制終了しますが、スクリプトの実行は続行します
私はライン、いつかのために睡眠してから実行して前記Iは、bashスクリプトを持ってtail -f、特定のパターンが見られていることを確認するために私のログファイルを、私はCtrl + Cを押してから抜け出すために、tail -fその後、bashスクリプトの終了の実行までに次の行に移動します: これが私がこれまでに行ったことです: #!/bin/bash # capture the hostname host_name=`hostname -f` # method that runs tail -f on log_file.log and looks for pattern and passes control to next line on 'ctrl+c' echo "===================================================" echo "On $host_name: running some command" some command here echo "On $host_name: sleeping for 5s" …
10 bash  shell  signals  trap 

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