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

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

5
echoコマンドとリダイレクト演算子を使用して、改行特殊文字をファイルに挿入する方法は?
echoコマンドとリダイレクト演算子を使用してファイルを作成したいのですが、ファイルは数行で作成する必要があります。 文字列内に「\ n」による改行を含めようとしました: echo "first line\nsecond line\nthirdline\n" > foo しかし、この方法では、3行のファイルは作成されず、1行と文字列の逐語的な内容のみのファイルが作成されます。 このコマンドのみを使用して複数行のファイルを作成するにはどうすればよいですか?

4
CLI /端末スライドショーアプリはありますか?
私は自問しています:Libreoffice Impressで作成したスライドのように、Linuxで、ターミナル上で簡単なスライドを作成して表示できるソフトウェアはありますか? これは、コンソールのみを使用してプレゼンテーションを作成するのに最適な体験です。高度なグラフィックス(GLやフレームバッファーなど)を使用せずに、ncursesまたはその他のlibのみを使用することもできます。 何か助け? 編集1:私はvimdeckを使用し、推奨しています。ありがとうございました:D 編集2:この質問は、スタンドアロンソフトウェアまたはLaTeXを使用できるプラグインについては未解決です。

6
シェル内の複数のファイルへのパイプ
ディスクに保存したくない大量のデータを生成するアプリケーションがあります。アプリケーションは主に、使用したくないデータを出力しますが、個別のファイルに分割する必要がある有用な情報のセットを出力します。たとえば、次の出力がある場合: JUNK JUNK JUNK JUNK A 1 JUNK B 5 C 1 JUNK 次のようにアプリケーションを3回実行できます。 ./app | grep A > A.out ./app | grep B > B.out ./app | grep C > C.out これは私が欲しいものを手に入れるだろうが、時間がかかりすぎるだろう。また、すべての出力を単一のファイルにダンプし、それを解析したくありません。 上記の3つの操作を組み合わせて、アプリケーションを1回実行するだけで3つの個別の出力ファイルを取得する方法はありますか?
29 bash  shell  grep  pipe 

6
git [アクション]コマンド(スペースを含む)のエイリアスを作成するにはどうすればよいですか?
私のエイリアスのほとんどは次の形式です。 alias p='pwd' 私git commitはそれがするようにエイリアスしたいgit commit -v ただし、スペースを含むエイリアスを作成しようとするとエラーが発生します。 $ alias 'git commit'='git commit -v' -bash: alias: `git commit': invalid alias name
29 bash  shell  terminal  alias  git 

4
最後のコマンドをファイルに保存するにはどうすればよいですか?
bashシェルを使用して分析を実行しているとき、よく使用するコマンドを同じディレクトリ内のファイル(「LOGBOOK」と呼ばれる)に保存して、何を確認できるようにします。私はそれらの結果を取得しました。これまでのところ、これは、端末からコマンドをコピーして貼り付けるか、コマンドを "up"に押してコマンドをに変更するecho"my command" >> LOGBOOKか、他の同様のふざけを意味します。 history先日、ツールがあることに気付きましたが、以前に実行したコマンドを取得するためにそれを使用する方法が見つからないため、次のようなことができますgetlast >> LOGBOOK。 これを行うための素敵な簡単な方法はありますか。あるいは、他の人は、結果を得るためにコマンドを保存することにどのように対処しますか?

3
継続文字の後にコメントがあるbash複数行コマンド
検討する echo \ # this is a comment foo これは与える: $ sh foo.sh # this is a comment foo.sh: line 2: foo: command not found Webでいくつか検索した後、姉妹サイトのStack OverflowでDigitalRossのソリューションを見つけました。だからできること echo `: this is a comment` \ foo または代わりに echo $(: this is a comment) \ foo ただし、DigitalRossは、これらのソリューションが機能する理由を説明しませんでした。説明をお願いします。彼はコメントで答えた: 以前は、gotoこのように指定されたラベルに分岐するシェルコマンドがあり:ました。gotoなくなっていますが、まだ使用できる : whatever構文を... :今すぐ解析されたコメントの一種です。 しかし、移植性の議論を含め、詳細とコンテキストが欲しいです。 …
29 bash  shell 

3
リダイレクトの順序
コンピューターがこのコマンドをどのように読み取るかはよくわかりません。 cat file1 file2 1> file.txt 2>&1 理解できれば、2>&1単に標準エラーを標準出力にリダイレクトします。 そのロジックにより、コマンドは次のように読み取られます。 ファイルfile1とfile2。 stdoutこの操作からに送信しfile.txtます。 に送信stderrしstdoutます。 終わり? コンピューターが何をしているのかわかりません。私の論理では、コマンドは cat file1 file2 2>&1 > file.txt しかし、これは正しくありません。

2
なぜ `sort <“ $ f1”`が `sort —“ $ f1”`よりも優先され、なぜこれが `sort“ $ f1”`よりも優先されるのですか?
https://unix.stackexchange.com/a/458074/674から -- 任意の引数をコマンドに渡すときに使用することを忘れないでください(または、可能な場合はリダイレクトを使用してください)。だから、sort -- "$f1"またはより良いsort &lt; "$f1"の代わりにsort "$f1"。 使用--とリダイレクトが望ましいのはなぜですか? なぜsort &lt; "$f1"優先されるのsort -- "$f1"ですか? なぜ sort -- "$f1"優先されるのsort "$f1"ですか? ありがとう。

1
oh-my-zshを使用してzshで「自動CD」を無効にする方法
グーグルで検索しても結果は表示されませんでした。私は名前のバイナリファイルがあります。ここで私が何を意味するかだx私のパスに(ない現在のフォルダを、それがであるPATH)、そしてまた、現在の作業ディレクトリに同じ名前のフォルダ。と入力xすると、バイナリを実行したいのですが、代わりにそのフォルダにcdします。どうすれば修正できますか?
29 shell  zsh  oh-my-zsh 

4
10進数から16進数へのBASHベースの変換
Bashでは、10進数から別のベース、特に16 進数へのベース変換をどのように行いますか。他の方法で行くのは簡単そうです: $ echo $((16#55)) 85 ウェブ検索で、変換を行うための数学と文字操作を行うスクリプトを見つけ、それを関数として使用できましたが、bashには既にベース変換が組み込まれていると思っていました-しますか?

3
`{{(exit 1); 出口1; }; } `意味?
config.statusによって生成されconfigureたからの次のコードスニペットを引用しました。 if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" &gt;&amp;5 echo "$as_me: error: cannot find myself; rerun with an absolute path" &gt;&amp;2;} { (exit 1); exit 1; }; } fi コードスニペットでは、何をし{ (exit 1); exit 1; };ますか?exitサブシェルでのみ行う目的は何ですか?

8
shループの「do」の後に「;」がないのはなぜですか?
単一行で記述されたときにシェルループ内に;文字がないのはなぜdoですか? ここに私が言いたいことがあります。複数行で記述された場合、forループは次のようになります。 $ for i in $(jot 2) &gt; do &gt; echo $i &gt; done そして、1行で: $ for i in $(jot 2); do echo $i; done すべての倒壊ラインが得る;それらの後を除くためのdoライン、そしてあなたが含まれている場合;、それは誤りです。おそらく、これが理由で正しいことであると私が判断したよりもはるかに賢明な誰かが、おそらくその理由がわからない。私には矛盾しているようです。 whileループでも同じです。 $ while something &gt; do &gt; anotherthing &gt; done $ while something; do anotherthing; done
28 shell 

1
何を;; shでしますか?
a;;bshで実行しようとすると、次のエラーが表示されます。 sh: &lt;number&gt;: Syntax error: ";;" unexpected しようa;;;bとすると、では;;;なく同じエラーが発生する;;ので、それ;;は何かを意味すると思いますが、それが何を意味するのか分かりません。 以下に例を示します。 $ echo A;;echo B sh: 1: Syntax error: ";;" unexpected $ echo A;;;echo B sh: 1: Syntax error: ";;" unexpected $ echo A; ;echo B sh: 1: Syntax error: ";" unexpected ここ; ;で;;、;以前にコマンドなしで使用したという事実に関連して、エラーの代わりに使用すると異なることがわかります。;;私はそれが何に適用されるのか分かりませんが、別の演算子のようです。
28 shell 

3
シェルからエイリアスを永久に削除するにはどうすればよいですか
コンピューターの近くにいなかったとき、誰かがそれを手に入れてls、ルートフォルダーにエイリアスを設定しました。彼はそれをに設定しました'yes NeverGonnaGiveYouUp'。ルートフォルダーにimを入力するlsと、NeverGonnaGiveYouUpの無限ループが発生します。それは私を夢中にさせており、それを取り除く方法がわかりません。 私はすでに試したunaliasし、unalias -aしかし、それらは単に一時的に削除します。シェルを閉じて再度開くと、再び表示されます。このがらくたを取り除くにはどうすればよいですか?
28 shell  terminal  alias 

4
シェル関数のローカル変数の範囲
24.2を読んだ後。ローカル変数、varキーワードで変数を宣言するlocalことvarは、関数の波括弧で区切られたコードブロック内でのみ値にアクセスできることを意味すると考えました。 ただし、次の例を実行した後、私はそれが判明var読み、またアクセスすることができ、関数から書かれたコードのブロックによって呼び出される-すなわちたとえvar宣言されているlocalにouterFunc、innerFuncまだそれを読んで、その値を変更することができます。 Run It Online #!/usr/bin/env bash function innerFunc() { var='new value' echo "innerFunc: [var:${var}]" } function outerFunc() { local var='initial value' echo "outerFunc: before innerFunc: [var:${var}]" innerFunc echo "outerFunc: after innerFunc: [var:${var}]" } echo "global: before outerFunc: [var:${var}]" outerFunc echo "global: after outerFunc: [var:${var}]" 出力: global: before outerFunc: [var:] …

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