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

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

2
コマンドラインで括弧はどのように解釈されますか?
設定方法を読んでいるgrubと、次の2つの構文のいずれかを使用する必要があると主張する記事に出会いました。 echo \(hd0,0\) >> /boot/grub/grub.conf または echo '(hd0,0)' >> /boot/grub/grub.conf なぜなら、コマンドラインでは、かっこが特別な方法で解釈されるためです。括弧の特別な点は何ですか?それらはどのように解釈されますか?
45 bash  shell  quoting 

5
mv:宛先が存在しない場合にのみファイルを移動します
私は使用することができmv file1 file2、それが唯一動くような方法でfile1のfile2場合file2は存在しないのですか? 私はもう試した yes n | mv -i file1 file2 (これによりmv、file2をオーバーライドするかどうかを尋ねて、自動的にnoと答えることができます)しかし、-iそれを悪用するだけでなく、素敵なエラーコードも与えません(移動した場合は常に0ではなく141、移動しない場合は何か)
44 shell  files  mv 

7
testまたは[または[[はbashシェル間および他のシェル間でより移植性がありますか?
できると思う $ [ -w /home/durrantm ] && echo "writable" writable または $ test -w /home/durrantm && echo "writable" writable または $ [[ -w /home/durrantm ]] && echo "writable" writable 3番目の構文を使用するのが好きです。それらはすべての点で、すべてのネガティブおよびエッジケースで同等ですか?移植性に違いはありますか?たとえば、UbuntuのbashとOS Xまたは古い/新しいbashバージョンの場合、たとえば4.0より前/後で、どちらも式を同じように展開しますか?

8
スクリプトの実行準備ができたときに、どのようにサウンドを再生できますか?
私は時々実行していますが、実行にかなり時間がかかるいくつかのpythonスクリプトを実行しています。 次のように実行します。 $ time python MyScript.py スクリプトの実行が完了したらすぐにサウンドを再生するにはどうすればよいですか? Ubuntu 10.10(Gnomeデスクトップ)を使用しています。
44 shell  ubuntu  audio 

10
zshプロンプトをviモードでモードを表示する
私はbindkey -v(bash-ers set -o viではzshでも動作すると思います)またはvi(m)モードを使用します。しかし、挿入モードなのかコマンドモードなのかを判断する視覚的な手がかりがないというのは、私を悩ませています。プロンプトにモードを表示させる方法を知っている人はいますか?
44 shell  prompt  zsh 


7
シェルの二重引用符と単一引用符のニーモニックは何ですか?
二重引用符または一重引用符でUnix変数が置換されるかどうかを調べることなく、覚えるのに十分なスクリプトを実行しません。 私は何が起こっているのかを明確に理解しています。私の質問は、誰かが正しい引用ルールを頭の中に固執させるための記憶の秘 haveを持っているのですか?

1
拡張子のないファイルを見つける
私が持っているとしましょう: foo.txt bar baz.ooo 使用すると、出力ls -1 !(*.*)のみが取得さbarれます。素晴らしい、今はfindで同じ結果を得たい- find -regex仕事をする人もいます。 注意: find -name !(*.*)!(*.*)それはまだ私が使用できないBashのグロブであるので、答えではありません。
43 bash  shell  find  wildcards 

4
人間が読める方法でPATHを表示する
PATH環境変数をより人間が読める方法で表示したい。 $ echo $PATH /Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin 私はこのようなことを考えています: $ echo $PATH | some cut and awk magic /Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin /Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin /Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin /Users/arturo/.rvm/bin ...

3
シェルスクリプトでの$ {1 +“ $ @”}の意味と、「$ @」との違いは何ですか?
Perlのドキュメントでは、perlrun(1)は、バイリンガルシェル/ Perlヘッダーを使用してPerlスクリプトを起動することを提案しています。 #!/bin/sh #! -*-perl-*- eval 'exec perl -x -wS $0 ${1+"$@"}' if 0; どういう${1+"$@"}意味ですか?"$@"代わりに(Bashを/ bin / shとして使用して)使用してみましたが、同様に機能するようです。 編集 以下の2つの回答は、にあるはずだと言っています${1:+"$@"}。${parameter:+word}bash(1)で文書化されている( "Use Alternate Value")構文を知っています。しかし、私は納得できません。なぜなら 両方${1+"$@"}と"$@"うまく、パラメータがない場合でも作業。としてsimple.shを作成した場合 #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 "$@"' if 0; #!perl use Data::Dumper; print Dumper(\@ARGV); およびquestion.shとして #!/bin/sh eval 'exec /usr/bin/perl -x -S -- $0 ${1+"$@"}' …
43 bash  shell  perl 

4
ヒアドキュメントに「$」を印刷する方法
bashのhere-docで「$」をエコーするにはどうすればよいですか? たとえば、のようなリモートサーバー上のコンテンツを含むファイルが必要です$ABC=home_dir。 $ ssh hostname sudo -s <<EOF echo "$ABC=home_dir" > file EOF ただし、変数として扱われます。リテラルを印刷するにはどうすればよい$ですか?
42 bash  shell  quoting 

7
[AZ]がbashの小文字と一致するのはなぜですか?
私が知っているすべてのシェルrm [A-Z]*で、大文字で始まるすべてのファイルを削除しますが、bashでは、これは文字で始まるすべてのファイルを削除します。 この問題は、bash-3およびbash-4を使用するLinuxおよびSolarisに存在するため、libcのバグのあるパターンマッチャーや、誤って設定されたロケール定義が原因のバグではありません。 これは奇妙で危険な動作を意図したものですか、それとも長年にわたって修正されていない単なるバグですか?
42 bash  shell  wildcards  locale 

2
`cat <> file`はどのように機能しますか?
cat &lt; fileファイルの内容を標準出力に出力します。 cat &gt; fileCtrl+ Dが検出され、入力テキストがfileに書き込まれるまでstdinを読み取ります。 cat &lt;&gt; file、少なくとも私のバージョンのBashでは、ファイルの内容を(エラーなしで)うまく印刷しますが、ファイルを変更したり、変更タイムスタンプを更新したりしません。 Bash規格&gt;は、3番目のステートメントで無視されているように見えることをどのように正当化しますか?さらに重要なことは、それは何かをしているのですか?


5
環境変数とは正確には何ですか?
これVARIABLE=valueにより環境変数がexport VARIABLE=value作成され、現在のシェルで作成されたプロセスで使用できるようになります。envは現在の環境変数を示していますが、どこにありますか?環境変数(またはそのことについては環境)を構成するものは何ですか?

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