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

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

3
シェルスクリプトのboolean値を表すためのベストプラクティスは何ですか?
私は中にブール値があることを、知っているbashが、私は今まで彼らがどこにも使用され表示されません。 マシンで頻繁に検索される情報のラッパーを作成したいと思います。たとえば、この特定のUSBドライブが挿入/マウントされています。 それを達成するためのベストプラクティスは何でしょうか? 文字列? drive_xyz_available=true 数値(0はtrue、0はfalse)? drive_xyz_available=0 # evaluates to true 機能? drive_xyz_available() { if available_magic; then return 0 else return 1 fi } 私は主に、ラッパーを使用したい他の人に何が期待されるのだろうかと思います。ブール値、変数のようなコマンド、または呼び出す関数を期待しますか? セキュリティの観点からは、2番目のオプションが最も安全だと思いますが、あなたの経験を聞きたいと思います。


5
シェル変数からスペースを削除するにはどうすればよいですか?
コマンドラインで次のことを行いました。 $ text="name with space" $ echo $text name with space 私はtr -d ' 'スペースを削除するために使用しようとしていますが、結果は次のとおりです: namewithspace 私は次のようないくつかのことを試しました: text=echo $text | tr -d ' ' これまでのところ運が悪いので、うまくいけば素晴らしい人々が助けることができます!
15 shell  command-line  tr 

2
予期しないトークン `( '付近の構文エラー
CentOSのSSHターミナルで以下のコードを使用すると、正常に動作します。 paste <(printf "%s\n" "TOP") しかし、シェルスクリプト(test.sh)に同じ行コードを配置し、ターミナルからシェルスクリプトを実行すると、このようにエラーがスローされます ./test.sh: line 30: syntax error near unexpected token (' ./test.sh: line 30: paste <(printf "%s\n" "TOP") この問題を修正するにはどうすればよいですか?
15 shell 

4
bash:adduser:コマンドがcentOSに見つかりません
最近、CentOS 5.5をVMWare 8にインストールしましたが、システムに新しいユーザーを追加しようとしています。su -オプションを使用しない限り、ユーザーを追加できません。パスが正しく設定されていない状態で何かをする必要があると思います。 パスを更新しましたが、次のようになります /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/uone/bin:/sbin コマンドは既にパスの一部である/ sbin dirにあると思います。誰も私に他に何が欠けているかもしれないかを提案できますか?
15 shell  path 

2
pwdと/ bin / pwdの奇妙な違い
を使用して現在のディレクトリにシンボリックリンクを追加しましたln -s . aa。実行しcd aa、その後実行した場合pwd、応答はになり/home/sim/aaます。 しかし、実行する/bin/pwdと印刷されます/home/sim(現在のディレクトリは変更されていません)。 この違いはどこから来たのですか?
15 shell  symlink  pwd 

5
(最新のファイルではなく)最新のディレクトリを取得します
私のフォルダparentには次のコンテンツがあります: A.Folder B.Folder C.File 内部にはフォルダーとファイルの両方があります。B.Folderより新しいです。取得したいのですがB.Folder、どうすればこれを達成できますか?これを試した ls -ltr ./parent | grep '^d' | tail -1 しかしそれは私に与えますdrwxrwxr-x 2 user user 4096 Jun 13 10:53 B.Folderが、私はただ名前が必要B.Folderです。
15 shell  files  ls  timestamps 

5
最初に最小のファイルをコピーしますか?
再帰的にコピーしたいサブディレクトリとファイルを含む大きなディレクトリがあります。 cp最小のファイルが最初にコピーされるように、ファイルサイズの順にコピー操作を実行する必要があることを伝える方法はありますか?
15 shell  cp  file-copy  size 

5
システムがアイドル状態で、再びアクティブになったときにコマンドを実行する
ユーザーが非アクティブになった(システムがアイドル状態になった)ときにコマンドを実行したい。例えば: echo "You started to be inactive." また、ユーザーが再びアクティブになったとき(システムはもうアイドル状態ではありません): echo "You started to be active, again." これを行うシェルスクリプトが必要です。これはタイマー/インターバルなしで可能ですか?たぶんいくつかのシステムイベント?
15 linux  bash  shell 

2
パイプでxargsを使用する方法はありますか?
フォルダーに移動したflacファイルを別のフォルダーのmp3に自動的に変換しようとしています。 私の現在のコード行はこれです: inotifywait -m -r -q -e moved_to --format "'%w%f'" ~/test | xargs -I x flac -cd x - | lame -b 320 - /media/1tb/x.mp3 これまでの動作を説明するために、inotifywaitは、そこに移動したファイルを〜/ testで再帰的に監視し、パスとファイル名をパイプに出力します。xargsはその名前を使用して適切なflacコマンドを作成し、xをファイル名に置き換え、ファイルを別のパイプにデコードします。新しいパイプでは、lameはflacの出力を/ mediaの下のmp3に処理します。xargsにパイプを介して何らかの方法で到達して、lameコマンドのxを置き換えるか、何らかの方法で両方のコマンドがアクセスできる変数に送信するか、何かが欲しい。名前付きパイプとそのジャズをいじってみましたが、2つのコマンド間でパイプ処理される実際のデータがあるという事実に頭を悩ませています。
15 shell  pipe  xargs  inotify 

3
コマンドによって出力された行数をリアルタイムで表示する方法は?
私はsvn export自分のアプリケーションのパッケージャースクリプトの一部として使用していますが、このコマンドは、他の多くのコマンドと同様、プログレスバーを備えていないようです。 現時点では2つの選択肢があります。 オプションなしで使用し、数千行を印刷するのを見る を使用し--quiet、完了するまで何もしません。 少なくともコマンドによって出力された行数をリアルタイムで表示する方法はありますか?といった: Exporting SVN directory ... 1234 files そして、この数1234 がリアルタイムで増加するのを見てください。これを行うコマンドに出力をパイピングすることを想像できますが、どれですか?

2
\ eと^ [の違い
ジルは書いた: 文字27 = 033 = 0x1b = ^[=\e デミゼイは書いた: ^ [はESCAPEの単なる表現であり、\ eは実際のESCAPE文字として解釈されます 次に、TechRepublicの記事からこの行を見つけました キーシーケンスを^ [[24〜ではなく\ e [24〜として記述してください。これは、^ [シーケンスがシェルの\ eで表される[Esc]キーと同等であるためです。したがって、たとえば、キーシーケンスが^ [[OPの場合、使用するバインドコードは\ e [OPになります。 しかし、私は\ eの代わりに^ [を使用するマッピングを使用しています。 それで、それらは交換可能ですか?いつ他方を使用する必要がありますか?



6
sudo over ssh:ttyが存在せず、askpassプログラムが指定されていません
このエラーが引き続き発生するので、これを修正するためにオンラインで議論されたいくつかの方法を試してみましたが、何も機能していません。私が実行したとき、私は、セットアップのSSHキーがそうしている'ssh newton@host.com'、それは自動的に私をログに記録し、私はまた、このユーザーを設定しているvisudoことを'newton ALL=(ALL:ALL) ALL' 、私は、その後も追加しようとしました'newton ALL=NOPASSWD: /var/www/script.sh' 残念ながら、ssh newton@host.com 'sudo /var/www/script.sh'Cygwinから実行するたびに戻ってきます。追加しようとし-t -tましたが、パスワードの入力を求められます。 total size is 21209180 speedup is 314.69 sudo: no tty present and no askpass program specified Sorry, try again. sudo: no tty present and no askpass program specified Sorry, try again. sudo: no tty present and no askpass …
15 shell  ssh  sudo 

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