Как напечатать входные аргументы в bash-скрипте как есть - PullRequest
0 голосов
/ 26 ноября 2018

Не могли бы вы помочь, существует ли в bash команда для цитирования входного аргумента?

script ./test.sh:

#!/bin/bash

echo ${1}

./test.sh "It costs $1" Это печатает It costs, но какчтобы распечатать его как есть It costs $1.

Конечно, аргумент можно заключить в кавычки непосредственно в команде: ./test.sh "It costs \$1" и он напечатает It costs $1.Но как процитировать его в сценарии?

ОБНОВЛЕНО: Возможно с одинарными кавычками ./test.sh 'It costs $1'

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Я часто использую:

printf "'%s' "  "$@"

Это альтернатива эхо, когда вы хотите, чтобы каждый аргумент был заключен в кавычки.

0 голосов
/ 26 ноября 2018

Вы можете обновить вашу программу, как показано ниже, чтобы напечатать / отобразить все аргументы.

#!/bin/bash

echo "$@"

Это напечатает все аргументы, переданные во время выполнения test.sh.$ 1 - это переменная, которая заменяет пустую строку при вызове вашей программы test.sh.Внутри test.sh первый аргумент, который вы передали в командной строке, становится $ 1, второй - $ 2 и так далее.

$@ печатает все аргументы.

...