Как в macOS удалить историю прошлых команд из «Терминал» > «Оболочка» > «Новая команда»?

Выполните правильный синтаксический анализ командной строки, а затем выберите способ фактического пробного запуска.

Разбор командной строки:

#!/bin/sh

dry_run=false

while getopts 'n' opt; do
    case "$opt" in
        n) dry_run=true ;;
        *) echo 'error in command line parsing' >&2
           exit 1
    esac
done

Теперь $dry_runбудет true, если пользователь вызвал сценарий с параметром командной строки -n.

Затем выберите способ выполнения пробного запуска. Простым способом было бы использоватьset -v(отображать команды по мере их чтения оболочкой ), а затемset -n(фактически не запускать ничего):

if "$dry_run"; then
    set -v
    set -n
fi

Возможно, это не то, что вам нужно, так как это просто отобразит скрипт.

Вместо этого вы можете

if "$dry_run"; then
    cmd=echo
else
    cmd=''
fi

, а затем добавьте префикс к конкретным командам, которые вы хотите запустить в пробном режиме, с$cmd:

$cmd ls -l
$cmd echo "hello world"
0
30.12.2019, 18:39
1 ответ

Если вы запустите эту команду:

open -a Finder ~/Library/Preferences/com.apple.Terminal.plist

Вы увидите вкладку CommandHistory, где можно удалить записи.

Если com.apple.Terminal.plist отсутствует в указанном выше пути, вы можете выполнить поиск по:

find ~ -name com.apple.Terminal.plist
0
28.01.2020, 02:58

Теги

Похожие вопросы