所以我正在写一个bash脚本,它将解密一个文件,所以我要解密的命令的语法[file.jpg] 到目前为止,这是我的剧本:
openssl enc -d -aes-256-cbc -in file.jpg > file
echo "Please make sure you add the correct extension to
the file."
花了很多时间试图实现我的目标,但它确实有效,所以我想要一些帮助。就像假设文件名是movie.mov我应该能够使用decrypt movie.mov或任何其他文件解密它。
编辑:感谢您的所有答案,但我发现我认可的答案很简单,很抱歉,我不能批准多个答案,所有答案都会提供一些新信息!
答案 0 :(得分:2)
您可以使用变量$ 1,$ 2,$ 3访问bash脚本中的参数。 $ 1是第一个参数,第二个是2美元......
如果你跑
decrypt file.jpg
您可以使用以下代码访问bash脚本中的file.jpg
:
openssl enc -d -aes-256-cbc -in $1 > file
echo "Please make sure you add the correct extension to the file."
答案 1 :(得分:2)
答案 2 :(得分:1)
如何将参数传递给bash?
(我想你的意思是......对于一个bash脚本?'。)
您只需在命令名后添加参数
然后,在您的脚本中,您可以使用$ 1来获取第一个参数,使用$ 2来获取第二个参数,依此类推。
见这里:https://www.gnu.org/software/bash/manual/html_node/Positional-Parameters.html#Positional-Parameters
解决您的问题您可以:
创建一个文件' ./ decrypt'内容:
#!/bin/bash
openssl enc -d -aes-256-cbc -in "$1"
添加文件的执行权限:
chmod +x ./decrypt
然后为了解密文件movie.mov:
./decrypt movie.mov > movie.mov.decrypted
重要提示:请记住:decrypt movie.mov > movie.mov
执行操作会导致文件为空!见这里:bash redirect input from file back into same file
您可能还想将新脚本添加到路径,请参阅此处:Add a bash script to path
答案 3 :(得分:0)
$ 1将是您传递给脚本的第一个参数,第二个是$ 2,依此类推。 下面是一个带$ 1的示例 - 第一个参数,并将其传递给脚本中名为decrypt_my_file的函数。该函数还使用$ 1作为传递给它的第一个参数,这是脚本中的一个小脚本
#!/bin/bash
decrypt_my_file () {
local file_that_was_given="${1}"
openssl enc -d -aes-256-cbc -in "$file_that_was_given" \
> decrypted."$file_that_was_given"
}
decrypt_my_file "$1"
这应该解密你的文件名,例如ABC.jpg并创建一个名为的解密文件 " decrypted.ABC.jpg"