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

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

1
パイプラインを使用した複数行のbashコマンドで、別々の行に読みやすいコメントがありますか?
パイプラインを使用してシェルスクリプトを作成し、バックスラッシュを使用して行を継続する場合、堅牢で読みやすく、移植可能な方法でコメントを別の行に挿入したいと思います。 たとえば、次のコメントなしの複数行コマンド(わかりやすくするために@DigitalRossから盗まれました)を考えます。 echo abc | tr a-z A-Z | sort | uniq ...以下は私が達成したいものに審美的に最も近いものですが、明白な理由で機能しません...そしてはい、これは通常コメントする価値のあるものではないことをよく知っています: # Perform critical system task. # NOTE - An example of what does *not* work. echo abc | # Convert lowercase to uppercase. tr a-z A-Z | # Sort the results. sort | # Only show unique …
14 bash  shell  pipe 


1
Linuxシェルで入力されたコマンドを非表示にする方法は?
コマンドの出力を保持したまま、端末がキーストロークをエコーし​​ないように、シェルで入力しているものを隠す方法はありますか? たとえば、実行した場合ip addr show、画面に表示されるのはそのコマンドからの出力だけであり、入力した「ip addr show」ではありません。

4
bash(または他のシェル)スクリプトでスペースの数が問題になるケースは何ですか
bash他のシェルスクリプトではスペースが重要であると言われましたが、何をしているのかわからない限り、スペースの存在を変更しないでください。「存在を変える」と私はどちらかなどが変化する、二つの非空白文字の間にスペースを挿入するか、二つの非空白文字の間にスペースを取り除く意味var="$val"するvar ="$val"、またはその逆。聞きたい シェルスクリプトで単一のスペースを使用したり、複数の連続したスペースを使用したりすると、違いが生じる場合はありますか?。 (もちろん、引用符でスペースを挿入/削除すると違いが生じます。例えば、からecho "a b"、echo "a b"またはその逆に変更します。この些細な例以外の例を探しています。) 私はこの質問に出くわしましたが、その1つは2つの非スペース文字の間にスペースを追加および削除することです。 任意の助けをいただければ幸いです。可能であれば、より多くの種類のシェルを含めます。

5
bashで文字列にインデックスを付ける
sh / bashのインデックスで文字列を参照するにはどうすればよいですか?つまり、基本的にそれを分割します。 ファイル名の5文字を​​削除しようとしています。すべての名前の構造は、name_nr_codeです。5つの英数字コードビットを削除しようとしています。name_nr_常に10文字です。 ようなものがあります; for i in * ; do mv "$i" "$i"[:10] ; done
14 bash  shell  string 


2
grepおよびsortコマンドを使用してソートするにはどうすればよいですか?
ファイル/etc/servicesで見つかったすべてのTCPサービスのソートされたリストを作成し、コマンドの出力をコマンドgrep tcp /etc/servicesにsortパイプし、このパイプの出力をファイルにリダイレクトしたいです~/pipelab.txt。 出力が間違っているというエラーメッセージが引き続き表示されますが、その理由はわかりません。 これは私が最後に試したものです: grep tcp /etc/services > ~/pipelab.txt | sort
14 shell  pipe 


1
ユーザーに特別なプログラムの使用を制限できますか?
ユーザーを追加して、特別なプログラムの実行を制限することは可能ですか? たとえば、このユーザーがログインした後、彼はFirefoxを開いてインターネットを使用することしかできず、このユーザーは他のプログラムを実行できません。 たとえば、ターミナルでは、$ HOMEなどの環境変数を削除すると、コマンドにアクセスできなくなります。 しかし、Gnomeのようなグラフィカルシェルでプログラムを実行することは避けられますか?はいの場合、どのように?


3
シェル:コマンド置換で末尾の改行( '\ n')を保持します
後続の改行文字を含む、コマンド置換の正確な出力をキャプチャできるようにしたいと思います。 デフォルトで削除されていることを認識しているため、それらを保持するには操作が必要になる場合があり、元の終了コードを保持する必要があります。 たとえば、可変数の末尾の改行と終了コードを持つコマンドが与えられた場合: f(){ for i in $(seq "$((RANDOM % 3))"); do echo; done; return $((RANDOM % 256));} export -f f 私は次のようなものを実行したい: exact_output f 出力は次のとおりです。 Output: $'\n\n' Exit: 5 bashPOSIX との両方に興味がありshます。
14 bash  shell 

3
トラップはサブシェルに継承されますか?
私は次のスクリプトを試しました: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo 上記のスクリプトの出力は次のとおりです。 [root@usr1 my_tests]# ./test.sh foo1 foo touching a file ただしfoo1、サブシェルで呼び出されるトラップも終了時に呼び出されることを期待していました。 これは予想されますか? さtrapサブシェルによって継承されましたか? はいの場合、どのような場合にtrapサブシェルに継承されますか?
14 shell  trap  subshell 

3
最後の区切り文字で文字列を切り取ります
のようなファイル名がありa.b.c.txt、この文字列を次のように分割したい string1=a.b.c string2=txt 基本的に、ファイル名とその拡張子を分割します。私が使用しcutたが、それはように分割a,b,cしてtxt。最後の区切り文字の文字列を切りたいです。 誰か助けてもらえますか?
14 shell  cut 

2
特定のパターンのファイルを別のディレクトリに移動する
ディレクトリ/home/inには次のようなファイルがあります: crust.MC12345.txt crust.etcMC12345.txt crust.MC23456.txt crust.etcMC23456.txt crust.etctcMC23456.txt 私は移動する必要があるcrust.etcMC12345.txtとcrust.etcMC23456.txt、別のディレクトリに/home/out私は上記のシナリオのためのmvコマンドで使用したパターンである.what?
14 shell  wildcards  mv 


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