【问题标题】:How do I pass arguments to bash?如何将参数传递给 bash?
【发布时间】:2018-05-22 18:26:51
【问题描述】:

所以我正在编写一个 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 或任何其他文件来解密它。

编辑:感谢您的所有回答,但我发现我批准的答案很简单,很抱歉我不能批准多个答案所有答案都提供了一些新信息!

【问题讨论】:

标签: bash macos


【解决方案1】:

接收到 bash 脚本的参数,第一个参数为 $1,第二个参数为 $2...

所以你的脚本应该是这样的

openssl enc -d -aes-256-cbc -in $1 > file

See here

【讨论】:

    【解决方案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."
    

    【讨论】:

      【解决方案3】:

      如何将参数传递给 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

      【讨论】:

        【解决方案4】:

        $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 并创建一个名为 "解密的.ABC.jpg"

        【讨论】:

          猜你喜欢
          • 2019-12-26
          • 1970-01-01
          • 2021-10-05
          • 2012-01-23
          • 1970-01-01
          • 2013-06-18
          • 2011-11-18
          • 1970-01-01
          相关资源
          最近更新 更多