私は私が作成した仮想マシン用のオペレーティングシステムを構築しています。うまくいっていますが、非常に単純な問題について数時間悩んでいます。ドロップダウン中にディレクトリを閲覧する方法を設計しています。 into subdirectories、親ディレクトリに戻るにはいくつかの問題があります。ディレクトリ内の文字数が特定の長さ以上の場合にのみ親ディレクトリに戻ることができるbashスクリプトが必要であるため、仮想マシンのファイルシステム上から仮想マシンのホストFSまたはシステムディレクトリへのナビゲーションは不可能です。 allowed:ユーザーモードですが、ルートモードでは両方を許可します(管理するために正しく機能する2番目のスクリプトがあります)。
だから今まで試したことは次のとおりです。問題は、両方のスクリプトが同じ操作を実行することです。ディレクトリを参照してもユーザーモードに戻るのではなく、「ファイルシステムのルートに親がありません」が返されます。一般的なルートディレクトリにルート 。
#!/bin/bash dir=$(cat '/system/framework/usrディレクトリ') 親ディレクトリ = "$(ディレクトリ名 "$dir")" echo $parentdir > '/system/framework/parentToCheck' validCheck=$(cat "/system/framework/parentToCheck") 有効=${#vaidCheck} 有効長=46 if [[ $valid == $validLength ]] それから echo $parentdir > '/system/framework/usrDirectory' それ以外の場合 [[ $valid < $validLength ]] それから echo -e "\n\nファイルシステムのルートディレクトリに親ディレクトリがありません!" フィリピン諸島 フィリピン諸島また:
#!/bin/bash dir=$(cat '/system/framework/usrディレクトリ') 親ディレクトリ = "$(ディレクトリ名 "$dir")" echo $parentdir > '/system/framework/parentToCheck' validCheck=$(cat "/system/framework/parentToCheck") 有効=${#vaidCheck} 有効長=46 if [[ $valid == $validLength ]] それから echo -e "\n\nファイルシステムのルートディレクトリに親ディレクトリがありません!" その他 echo $parentdir > '/system/framework/usrDirectory' フィリピン諸島
validLength
注:はい、変数の値は46で、そのスクリプトのディレクトリの長さはそれほど長くないことがわかります。これはプライベートVMであり、ユーザーモードが親アクセスディレクトリに安全にロックされるように設計されているためです。すべての内容、期間。したがって、ここではユーザーモードのルートディレクトリのフルパスを表示したくありません。ただし、ユーザーモードのルートディレクトリパスには46文字が含まれているため、これが機能しない理由はありません。
ベストアンサー1
タイトルに記載されている質問に簡単に答えるには:
if [[ "$foo" -lt "$bar" ]]; then
echo "$foo is less than $bar"
fi
整数比較テストは次のとおりです。
n1 -eq n2 True if the integers n1 and n2 are algebraically equal.
n1 -ne n2 True if the integers n1 and n2 are not algebraically equal.
n1 -gt n2 True if the integer n1 is algebraically greater than the
integer n2.
n1 -ge n2 True if the integer n1 is algebraically greater than or
equal to the integer n2.
n1 -lt n2 True if the integer n1 is algebraically less than the inte-
ger n2.
n1 -le n2 True if the integer n1 is algebraically less than or equal
to the integer n2.
たとえば、ASCIIシーケンスの比較に<
またはを使用すると正確です。>
[[ 0100 < 100 ]]