Я просмотрел много тем по этой проблеме и, наконец, решил проблему, проблема заключалась в размере пакетов MTU моей беспроводной карты. Я уменьшил его до 1200 (предыдущий размер был 1500 )с sudo ifconfig wlp2s0 mtu 1200
команда (wlp2s0 — моя беспроводная карта )и проблема решена
$_1
означает "расширить переменную _1
". Поскольку эта переменная не была установлена, она ничего не расширит. Вероятно, кто-то ошибся.
Возможно, человек подумал, что $_1
будет таким же, как ${_}1
, т. е. расширением $_
, (, которое является последним аргументом предыдущей команды ), объединенным с номер 1
. Но это не то же самое, как видно ниже:
$ cat tst.bash
#!/bin/bash
test "$1" = "0" && exit
echo $_
test "$1" = "0" && exit
echo $_1
test "$1" = "0" && exit
echo ${_}1
$./tst.bash
0
01
Если в качестве аргумента скрипта (в приведенном выше примере указать что-либо, кроме числа 0, я вообще не предоставил аргумента ), тогда test
завершается ошибкой и exit
не запускается. Итак, для каждого echo
последней выполненной командой будет
test "$1" = "0"
, последним аргументом которого является 0
. Таким образом, $_
заменяется на 0
, ${_}1
заменяется на 01
, а $_1
заменяется на пустую строку.
Спасибо, ребята. Я думаю, что человек, который написал, вероятно, ошибся. Предложение состояло в том, чтобы проверить, есть ли файл, и если нет, создать файл. Итак, после некоторых попыток я использовал test -f $(pwd)”/samplefile” || touch samplefile
, и это работает. Я просто запутался, потому что все команды для меня новые, и я подумал, что, возможно, $_1/
может что-то означать. Большое спасибо!:-)