Wir haben die folgenden CSV-Datei,Parameter mit Sonderzeichen in Bash-Skript
Datei enthalten Parameter und Wert
more hadoop.txt
security.admin.protocol.acl,*
security.client.protocol.acl,***
xasecure.add-hadoop-authorization,true
ranger.plugin.hdfs.policy.rest.ssl.config.file,/etc/hadoop/conf/ranger-policymgr-ssl.xml,
ranger.plugin.hdfs.policy.source.impl,org.apache.ranger.admin.client.RangerAdminRESTClient
ranger.plugin.hdfs.policy.cache.dir,/etc/ranger/{{repo_name}}/policycache",
ranger.plugin.hdfs.policy.pollIntervalMs,@$!!
ranger.plugin.hdfs.service.name,{{repo_name}}
der folgende Code ist ein Teil meiner Bash-Skript:
while read -r line
do
param=` echo $line | awk -F ',' '{print $1}' `
val=` echo $line | awk -F ',' '{print $2}' `
echo $val
if [[ $val = $hadoop_val ]]
them
done < $hadoop.txt
Das Problem ist, wenn val "*" oder "@ $ !!" oder andere Sonderzeichen dann bekommen wir anderen Wert:
echo $val
wie Sie den Code zu verbessern, um die ursprünglichen Werte als „*“ oder „@ $ !!“ zu bekommen von echo $ val
10 Konnten Sie Ihre Datei ordnungsgemäß einrücken? –
Bitte bereinigen Sie all diese Punkte und Leerzeichen und geben Sie einfach ein Skript ein, das jedes Problem wiedergibt, nach dem Sie fragen (z. B. ein [mcve]). –