我正在使用 bash shell。我正在尝试编写一个脚本,该脚本将读取一个属性文件,然后根据它在文件中读取的键值对在另一个文件中进行一些替换。所以我有
#!/bin/bash
file = "/tmp/countries.properties"
while IFS='=' read -r key value
do
echo "${key} ${value}"
sed -ie 's/:iso=>"${key}"/:iso=>"${key}",:alpha_iso=>"${value}"/g' /tmp/country.rb
done < "$file"
Run Code Online (Sandbox Code Playgroud)
但是当我去运行该文件时,尽管我的文件存在(我做了一个“ls”来验证它),但我得到一个“Nno such file or directory error”。
localhost:myproject davea$ sh /tmp/script.sh
=: cannot open `=' (No such file or directory)
/tmp/countries.properties: ASCII text
/tmp/script.sh: line 9: : No such file or directory
localhost:myproject davea$
localhost:myproject davea$ ls /tmp/countries.properties
/tmp/countries.properties
Run Code Online (Sandbox Code Playgroud)
我还需要做什么才能成功读取我的属性文件?
我在一个系统上有 2 个用户,user1 和 user2。
这是每个的authorized_keys的md5sum:
de092f77fb4a3be2cd8864c5f9961149 user1/.ssh/authorized_keys
de092f77fb4a3be2cd8864c5f9961149 user2/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
以下是每个 .ssh 文件夹的列表:
user1/.ssh/:
total 8
drwx------. 2 user1 user1 28 Mar 16 12:11 .
drwxrwx---. 5 user1 user1 4096 Mar 16 12:11 ..
-rw-------. 1 user1 user1 412 Mar 16 12:11 authorized_keys
user2/.ssh/:
total 4
drwx------. 2 user2 user2 28 Mar 16 11:37 .
drwx------. 3 user2 user2 90 Mar 16 11:38 ..
-rw-------. 1 user2 user2 412 Mar 16 11:37 authorized_keys
Run Code Online (Sandbox Code Playgroud)
这是每个的身份验证:
用户 1:
debug1: Next authentication method: …
Run Code Online (Sandbox Code Playgroud) 我想find . '! -name *.*'
在bash
shell中运行命令。它不能按预期工作。(它应该列出当前目录中所有-name *.*
为 false 的文件,即名称中没有点的文件。)相反,它打印目录中所有文件的列表,矛盾的是,以行结尾find: "! -name *.*": file or directory not found
。我怀疑问题是 shell 对表达式的解释,尽管它受两个撇号 (U+0027) 字符的保护。有没有办法可靠地保护表达式无论表达式是什么,表达式?
我使用这个版本:find (GNU findutils) 4.4.2
我有一个 shell 脚本 ren.sh
#!/bin/bash
/usr/bin/mv /home/imp/imp/msgs/$1.PK1 /home/imp/imp/msgs/$1.BRD
/usr/bin/mv /home/imp/imp/msgs/$1.PK2 /home/imp/imp/msgs/$1.MIX
Run Code Online (Sandbox Code Playgroud)
它工作正常,但一次只能移动 2 个文件(*.PK2
和*.PK1
)。我希望它将所有现有*.PK1
和*.PK2
文件移动到*.MIX
和*.BRD
文件
这可能吗?
以下rsync
命令不会删除目标目录中的文件
rsync -avr --delete hulio@192.168.255.42:/home/hulio/hotspots_test/* /home/zsumo/hotpoint/data
Run Code Online (Sandbox Code Playgroud)
我该如何解决?