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

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

2
カスタムzshrcでzshを起動します
コマンドに似たカスタムrcファイルでzshを起動できるようにしたい: bash --rc-file /path/to/file これが不可能な場合、zshを起動し、実行source /path/to/fileして、同じzshセッションにとどまることは可能ですか? 注:コマンドzsh --rcs /path/to/fileは、少なくとも私にとっては機能しません... 編集:全体として、私は次のことができるようにしたい: sshリモートサーバー「example.com」に、実行zsh、source私の設定は/path/to/file、すべて1コマンドで。これは、特にリモートマシン上の設定ファイルを上書きしたくないため、苦労した場所です。
17 linux  shell  zsh  oh-my-zsh 

3
実行中のプロセスのSTDOUTリダイレクトを参照してください
このコマンドでアプリを起動した場合: /path/to/my/command >> /var/log/command.log そして、コマンドは戻りません、別のプロンプトから、STDOUTリダイレクトが設定されているものを確認する方法はありますか? 私はどちらかのようなものを探しています cat /proc/PID/redirects または ps -??? | grep PID しかし、どの方法でもかまいません。


3
コマンドはシェルスクリプト経由では見つかりませんが、端末で動作します
私の.shファイルでは、antまたはmvまたはcpコマンドを呼び出すことはできませんが、同じコマンドがterminal.belowで実行されます sample.shファイル #! /bin/sh cp filename.so filename_org.so android update project -p . ant clean ant release .bashrcファイルに追加されたパス。 export PATH=$PATH:/usr/bin/ cp、mv、antはscirpt経由ではなく端末でのみ動作します。
17 shell 


2
`。[]。foo []`はbashで何をしますか?なぜ「..」と一致するのですか?
次を見てください: $ echo .[].aliases[] .. $ echo .[].foo[] .. $ echo .[].[] .. $ echo .[].xyz[] .. $ echo .xyz[].xyz[] .xyz[].xyz[] $ echo .xyz[].[] .xyz[].[] どうやらこれは何かをつかんでいるように見えますが、結果がどのように組み合わされるかはわかりません。私の理解で[]は、空の文字クラスです。もし直観的だとしたら 空の文字列のみに一致しました。この場合、bashはこのディレクトリ内で一致するものは何もないので、bashが完全に再現されることを期待しますが、..aliases(最初の例では) またはまったくない; この場合、bashが文字列全体を再現することも期待しています。 これは、GNU bashバージョン4.4.23(1)-releaseを使用しています。
16 bash  shell  wildcards 


3
どのシェルインタープリターがシバンなしでスクリプトを実行しますか?
アカウントのデフォルトのシェルがzshであるが、ターミナルを開いてbashを起動し、という名前のスクリプトを実行したとしますprac002.sh。どのシェルインタープリターを使用して、スクリプト、zshまたはbashを実行しますか?次の例を考えてみましょう。 papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password for papagolf: papagolf:x:1000:1001:Rex,,,:/home/papagolf:/usr/bin/zsh # papagolf's default shell is zsh papagolf@Sierra ~/My Files/My Programs/Learning/Shell % bash # I fired up bash. (See that '%' prompt in zsh changes to '$' prompt, indicating bash.) papagolf@Sierra:~/My Files/My Programs/Learning/Shell$ ./prac002.sh …

6
スクリプトの開始後にインタープリターを選択します(例:hashbang内のif / else)
スクリプトを実行しているインタープリターを動的に選択する方法はありますか?2つの異なるシステムで実行しているスクリプトがあり、使用したいインタープリターは2つのシステムの異なる場所にあります。最終的に私がしなければならないのは、切り替えるたびにハッシュバングの行を変更することです。私はこれと論理的に同等の何かをしたいと思います(この正確な構成は不可能であると認識しています): if running on system A: #!/path/to/python/on/systemA elif running on system B: #!/path/on/systemB #Rest of script goes here または、最初のインタープリターを使用しようとし、見つからない場合は2番目のインタープリターを使用するように、これがさらに良いでしょう。 try: #!/path/to/python/on/systemA except: #!path/on/systemB #Rest of script goes here 明らかに、私は代わりに、/path/to/python/on/systemA myscript.py または /path/on/systemB myscript.py 現在の場所に応じて実行でき ますが、実際にはを起動するラッパースクリプトがmyscript.pyあるため、手作業ではなくプログラムでpythonインタープリターへのパスを指定したいと思います。


6
gzip圧縮ファイルでレコード(行)の数を取得するための最速かつ最も効率的な方法
7.6 GBのgzipファイルでレコードカウントを実行しようとしています。このzcatコマンドを使用したアプローチはほとんど見つかりませんでした。 $ zcat T.csv.gz | wc -l 423668947 これは機能しますが、時間がかかりすぎます(カウントを取得するのに10分以上かかります)。私は次のようないくつかのアプローチを試しました $ sed -n '$=' T.csv.gz 28173811 $ perl -lne 'END { print $. }' < T.csv.gz 28173811 $ awk 'END {print NR}' T.csv.gz 28173811 これらの3つのコマンドはすべて非常に高速に実行されていますが、不正なカウント28173811が発生しています。 最小限の時間でレコードカウントを実行するにはどうすればよいですか?
16 shell  gzip 

4
シェル変数と環境変数の使用法の違いは何ですか?
実際、コマンドラインからアクセスできる変数には2種類あることを知りませんでした。私が知っているのは、次のような変数を宣言できることです。 foo="my dear friends" bar[0]="one" bar[1]="two" bar[2]="three" または、次のような$記号を使用してアクセスします。 echo $foo echo ${bar[1]} または、次のような組み込み変数を使用します。 echo $PWD PATH=$PATH:"/usr/bin/myProg" さて、シェル変数と環境変数という2つの(少なくとも?)タイプの変数があると聞きました。 2つの異なるタイプを使用する目的は何ですか? 変数がどの型であるかを知るにはどうすればよいですか? それぞれの典型的な使用法は何ですか?


3
U + xxxxxコードで指定された絵文字をutf-8に変換する方法は?
絵文字はU + xxxxxの形式を使用して指定されているようです 。各xは16進数です。 たとえば、U + 1F615は「混乱した顔」の公式Unicodeコンソーシアムコードです😕 よく混乱するので、このシンボルには強い親和性があります。 U + 1F615 Iは、Unicode文字のための唯一のエンコーディングが可能と思ったので表現は私に混乱して5進数字は、5x4 = 20ビットを必要とするのに対し、8、16、24または32ビットを必要としました。 このシンボルは、bashのまったく異なる16進文字列で表されているように見えることがわかりました。 $echo -n 😕 | hexdump 0000000 f0 9f 98 95 0000004 $echo -e "\xf0\x9f\x98\x95" 😕 $PS1=$'\xf0\x9f\x98\x95 >' 😕 > U + 1F615が\ x00 \ x01 \ xF6 \ x15のようなものに変換することを期待していました。 これら2つのエンコーディングの関係が見当たらないのですか? 公式のUnicode Consortiumリストでシンボルを検索するとき、この退屈な方法で手動で変換することなく、そのコードを直接使用できるようにしたいと思います。すなわち いくつかのWebページでシンボルを見つける Webブラウザーのクリップボードにコピーする bashに貼り付けて16進ダンプをエコーし​​、REALコードを検出します。 …

2
bashパイプラインで「yes」を使用すると、無限ループが発生しないのはなぜですか?
そのドキュメントによると、bashはパイプライン内のすべてのコマンドの実行が完了するまで待機してから続行します シェルは、値を返す前に、パイプライン内のすべてのコマンドが終了するのを待ちます。 では、なぜコマンドはyes | trueすぐに終了するのですか?すべきではないyesループが永遠に続き、パイプラインが戻らか? サブ質問:POSIX仕様によれば、シェルパイプラインは、最後のコマンドが終了した後に戻るか、すべてのコマンドが終了するまで待機するかを選択できます。この意味で、共通のシェルは異なる動作をしますか?yes | true永遠にループするシェルはありますか?
16 bash  shell  pipe 

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