![シェルスクリプトでハッシュを使用する[閉じる]](https://linux33.com/image/5076/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
コメントやasでハッシュ文字を使用する以外に、シェルスクリプトでハッシュ文字を使用する他の目的は何ですか$#
?またどんな用途がありますか?
grep
同じコード行にコメントがあるので、ハッシュする前に各行の内容を取得できるようにしたいです。
アプリケーションコンテキストは主にkornシェルであり、私が使用しているシステムは「HP-UX ***B.11.31 U ia64 ***** Unlimited User License」です。
答え1
#
特殊文字です。特殊文字は、文字通りの意味以上の意味を持つ文字として定義されます。#
シェルスクリプトでコメントアウトするために使用されます。
#!
しかし、いわゆる「シャバン(sha-bang)」という例外もあります。 sha-bangはスクリプトの先頭(コードの最初の行)にあり、そのファイルが指定されたコマンドソルバーに入力されるコマンドのセットであることをシステムに通知します。以下は一部です。
#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/bin/awk -f
コマンドは同じ行のコメントの後に続くことはできません。 「ライブコード」が同じ行で始まるようにコメントを終了する方法はありません。次のコマンドには新しい行を使用します。
ここにいくつかの例があります。
echo "The # here does not begin a comment."
echo 'The # here does not begin a comment.'
echo The \# here does not begin a comment.
echo The # here begins a comment.
echo ${PATH#*:} # Parameter substitution, not a comment.
echo $(( 2#101011 )) # Base conversion, not a comment.
#
慣れていない特定の目的でGoogleを検索することもできます。
答え2
#
$#
コメントの先頭に使用されることに加えて、Kornshellでは、ハッシュ()はさまざまな目的で使用されます${#}
(${var#pat}
例:リテラル${var##pat}
数)。リテラル文字列または「here-docs」のテキストデータの一部です。${#var}
${#arr[*]}
${#arr[@]}
base#number
[#]
"...#..."
$( n <# )
最新バージョンのkshは、、、、、、、${var/#pat/str}
もサポートしており、kshの<<#
組み込みフォーマット指定子で特定の意味を持ちます。<# ((expr))
># ((expr))
<#/pat
<##/pat
#
printf
(まだ申請書を1、2個欠落している可能性があります。)
引用:
ksh93:http://www2.research.att.com/sw/download/man/man1/ksh.html
ksh88:http://www2.research.att.com/sw/download/man/man1/ksh88.html