Passa o valor da variável ao script do terminal

3

Eu gosto do comando shred, então ao invés de usar o comando 'rm' eu prefiro o shred. Eu gostaria de criar um script bash em / usr / bin, digamos que vamos chamá-lo de "shredder" para que, se eu quiser destruir um arquivo (ou seja, test.txt), tudo que eu tenho que fazer é digitar:

shredder test.txt

E o script bash faz isso por mim. Eu fiz um script bash como este, mas não consigo descobrir como passar o nome do fie no terminal antes de executá-lo. Qualquer ajuda seria muito apreciada.

Aqui está o meu código.

#!/bin/bash
clear
read fle
shred -n 3 -zvfu $fle

Obrigado antecipadamente!

    
por BackTRanito 18.09.2014 / 15:40

2 respostas

5

você pode usar o script da seguinte maneira

#!/bin/bash
clear    
for var in "$@"
  do
    shred -n 3 -zvfu "$var"
  done

Ou uma versão mais curta

#!/bin/bash
clear    
for var
  do
    shred -n 3 -zvfu "$var"
  done

Execute seu script seguido pelo nome do arquivo que você deseja destruir. Você pode usar vários arquivos separados por espaço.

    
por g_p 18.09.2014 / 15:44
3

Bash usa variáveis de ambiente especiais para lidar com argumentos / parâmetros

  1. $ 0: o próprio nome do script
  2. $ #: número total de argumentos
  3. $ 1: primeiro argumento
  4. $ 2: segundo argumento

e assim por diante

#!/usr/bin/env bash

echo name of script is $0
echo first argument is $1
echo second argument is $2
echo number of arguments is $#

A saída deste programa será semelhante a:

bash /tmp/test.sh one two three
name of script is /tmp/test.sh
first argument is one
second argument is two
number of arguments is 3
    
por aneeshep 18.09.2014 / 15:52