所以我正在编写一个 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 我应该能够使用解密 movie.mov 或任何其他文件来解密它。
您可以使用变量 $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."
如何将参数传递给 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
./decrypt movie.mov > movie.mov.decrypted
decrypt movie.mov > movie.mov
将产生一个空文件!请参阅此处:bash 将文件中的输入重定向回同一文件$1 将是您传递给脚本的第一个参数,$2 是第二个,依此类推。 下面的示例采用 $1 - 第一个参数并将其传递给脚本内名为解密_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 并创建一个名为的解密文件 “解密.ABC.jpg”