1つの変数が2番目の変数より小さい場合にのみbashで操作を実行してください。

1つの変数が2番目の変数より小さい場合にのみbashで操作を実行してください。

私は私が作成した仮想マシン用のオペレーティングシステムを構築しています。うまくいっていますが、非常に単純な問題について数時間悩んでいます。ドロップダウン中にディレクトリを閲覧する方法を設計しています。 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 ]]

おすすめ記事