スクリプトで PATH を再構築するにはどうすればいいですか?

スクリプトで PATH を再構築するにはどうすればいいですか?

PATH をファイルに抽出し、次のようにリストしました。

/bin
/usr/bin
/usr/local/bin
.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin
/usr/java/default/bin
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin

私は今、このファイルからそれを抽出し、各ディレクトリの間にコロンを入れた新しいファイルの 1 行として復元したいと考えています。空のファイルを取得していますが、どこが間違っているのか教えていただけませんか? これは、ファイルへの復元を実行するために実行しているコマンドです。

echo -e ${bash_list tr \\ :\n} > bash_PATH

答え1

trSTDIN (標準入力) から入力を受け取ります。次を試してください:

$ tr '\n' ':' > output_file  < input_file

Bash のパラメータ拡張の構文を使用しましたが、パラメータとして使用できるのは変数または特殊なシェル パラメータのみであるため、ファイルをパラメータとして使用しています。これは正しくありません。

あなたがしようとしていることを実行するには、以下のみを使用しますbash:

$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH

ファイルには次のbash_PATH内容が含まれます:

/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin

また、「$PATH」に重複したディレクトリ名があることにも注意してください(これは例として意図的なものだと期待しています)。順序を変えずに重複を削除するには、以下を試してください。これ

関連情報