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

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



1
stdoutとstderrを同じファイルのマングル行にリダイレクトできますか?
リダイレクトstdoutを使用stderrして同じファイルにを使用すると2>&1、stdout通常stderrはバッファリングされていないのにブロックバッファリングされると読みました。 非常に長い行がに書き込まれstdout、バッファーの2回のフラッシュが必要な場合、行がstderr途中でずれることがありますか?このようなもの: stdout: aaaaaaaa.....really long line......aaaaaaaaaaaa<newline> stderr: eee<newline> combined: aaaaaaaaaaaaaaaaeee<newline> aaaaaaa<newline>

3
親シェルの作業ディレクトリをプログラムで変更することは可能ですか?
普段行くディレクトリに切り替えられるように、コードを書きたいのですが。このプログラムがmycdであり/a/very/long/path/name、私が行きたいディレクトリであるとします。 したがって、のmycd 2代わりに単純に入力できcd /a/very/long/path/nameます。ここで私はmycd知っている2と思い/a/very/long/path/nameますそれを指します。またあるかもしれませんmycd 1、mycd 3、...など 問題はmycd、シェルスクリプトとして記述し、入力. mycd 2して必要なことを行う必要があることです。それ以外の場合、スクリプトは子スクリプトで実行されるだけで、実際に関心のある親シェルについては何も変更されません。 私の質問は: 使用せずにそれを行うことができsourceますか?ので、. mycd前提としては、mycdシェルスクリプトでなければならない、これはまた、私は望んでいないことをいくつかの機能を紹介することがあります。 他のプログラミング言語で実装できますか?

3
&&と;の違いは何ですか バックグラウンドに睡眠をフォークするとき?
私は背景で眠るようにプロセスをフォークすることについて質問しました。 私が思いついた表記は次のようになります。 sleep 10 && echo "hello world" & 別の質問に対するこの回答では、別の形式を使用しています。 ( sleep 10 ; echo "hello world" ) & &&最初のプロセスがtrueを返した場合にのみ、2番目のプロセスを開始できることを知っています。眠れませんか?どちらかを優先する必要がある状況はありますか?

2
ソースのシェルスクリプトの場所を見つける
ソースシェルスクリプトがその場所を知っている可能性はありますか?私が読んだソースとシェルスクリプトのパスを決定するが、答えはに焦点を当てるbashとtcshPOSIXシェルが使用されている場合は失敗と。$0も解決策ではなく、間違った結果をもたらします。 ソリューションは100%信頼できる必要はありません。パスにハードリンクまたはシンボリックリンクが含まれていることはほとんどありません。 # sourcing the script should yield the absolute path to the script . somedir/thescript # within “thescript” -> /tmp/foo/bar/somedir 背景:このスクリプトはbin、ソースとなるスクリプトに対して既知の場所(アーキテクチャごとに異なります)のディレクトリにある数十のバイナリを含む既存のアプリケーションの一部です。アプリケーションを使用するには、binディレクトリの先頭にを付けるスクリプトをユーザーがに提供するPATHため、アプリケーションのバイナリを現在のシェル(シェルのいずれか)で簡単に呼び出すことができます。
8 shell  path 

2
「cd&」とはどういう意味ですか?
入力してターミナルからディレクトリを変更する方法を知っています cd <directory> しかし、これがシナリオです。ターミナルを使用してgitリポジトリのフォルダーに移動していました。 glennRepositories glenn-remdroid-repository 上記のフォルダー構造を考えると、glenn-remdroid-repositoryこれは私のリポジトリなので、切り替えたいと思います。 cd glennRepositories glenn-remdroid-repositoryに切り替える前に、誤ってコマンドを入力しました cd & の代わりにcd *。cd *フォルダ名が長いので使っていましたが、ご迷惑をおかけして申し訳ありません。 を実行するcd &と、端末が応答します [1] 7519 私が実行するとcd *これが起こります [1]+ Done cd (wd: ~/glennRepositories) (wd now: ~/glennRepositories/glenn-remdroid-repository) 誰が何をcd &意味し、その出力はありますか?Googleは私の質問を知りません:)

6
上書きを求められずにファイルをコピーまたは移動する方法は?
私が試したこと: root@host [/home1]# cp -f hello /home3 cp: omitting directory `hello' root@host [/home1]# cp -rf hello /home3 cp: overwrite `/home3/hello/.buildpath'? y cp: overwrite `/home3/hello/.bash_logout'? y cp: overwrite `/home3/hello/.project'? ^C 上書きするかどうかは常に尋ねられます。mvを使用しても機能しません。だから私は何をすべきですか? 私が試した他のこと: root@host [/home1]# cp -rf hello /home3 cp: overwrite `/home3/hello/.buildpath'? y cp: overwrite `/home3/hello/.bash_logout'? y cp: overwrite `/home3/hello/.project'? ^C root@host …
8 shell  alias  cp 

3
Bashでリダイレクトを停止する方法
私が使う : exec >script.log 2>&1 スクリプトですべての出力をファイルにリダイレクトします。スクリプトの最後に、メッセージを画面に出力したいと思います。リダイレクトを停止するにはどうすればよいですか?

1
シェルスクリプトへの入力に端末のオートコンプリートパス機能を使用する
次のようなスクリプトを作成したいと思います。(1)ユーザーがタブを使用してオートコンプリートを実行できるようにするパスを取得し、(2)ユーザーからファイル名を取得し、(3)そのパスに拡張子が付いたファイルを作成します。 txt。 私の質問は次のとおりです。「自動補完」パスである入力を要求するようにbashに指示するにはどうすればよいですか? 注:パスにはほとんどの場合スペースが含まれます。


2
LinuxはSSHを介して同時にログインできることを何人のユーザーがサポートしますか?
Linuxが同時​​にログインする複数のユーザーをサポートしていることは知っています。 しかし、Linuxに同時にログインできるユーザーの最大数はいくつですか? 私は69個のありますがあります参照ttyファイル(ttynまたはttysn、nのような整数であるが、tty0、tty1、tty2...)私の中/devのディレクトリ。これらのファイルはシェルだと思います。したがって、このLinuxシステムは、同時にログインできる69人のユーザーしかサポートしないと考えています。 私の考えは正しいですか?私の仮定が間違っている場合は、Linuxのユーザー制限について、その実装方法も含めて説明してください。 また、すでにログインしているユーザーの詳細にアクセスするにはどうすればよいですか?コマンドw、whoは知っていますが、高度なツールを探しています。
8 linux  shell  ssh  login  limit 


2
[[$ variable]]と[[-n $ variable]]の違いは何ですか?
bashでは[[ $variable ]]、[[ -n $variable ]]完全に同等ですか?以下の出力から判断するとそうなのかと思われますが、シェルスクリプトでは両方の使用方法が見られます。 $ z="abra" $ [[ $z ]] $ echo $? 0 $ [[ -n $z ]] $ echo $? 0 $ z="" $ [[ $z ]] $ echo $? 1 $ [[ -n $z ]] $ echo $? 1 $ unset z $ [[ $z …
8 bash  shell  test 

1
Bashスクリプトが入力を読み取らない
コマンドをバックグラウンドで実行することを想定したスクリプトがあります。問題は、スクリプトが読み取りコマンドに遭遇したときに、一時停止して入力を受け付けないことです。ここにあります: printf "Where is yo music?: " read musicPath cd $musicPath ls | while read currentSong;do seconds=`mdls "$currentSong"|sed -n '20p'|awk '{print $3}'|cut -d. -f1` hours=$((seconds / 3600)) seconds=$((seconds % 3600)) minutes=$((seconds / 60)) seconds=$((seconds % 60)) echo "Song: $currentSong" echo "Length: $hours:$minutes:$seconds" afplay "$currentSong"& printf "yes (y), no (n), or …

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