Команды, вставляемые в терминал, являются усеченными

Альтернатива должна переименовать файлы:

for FILE in Days/*
do
      DAY=`cut --delimiter '_' --fields 1 ${FILE}`
      MONTH=`cut --delimiter '_' --fields 2 ${FILE} | cut --delimiter '.' --fields 1
      NEWFILE=${MONTH}_${DAY}.tex
      cp ${FILE} ${NEWFILE}
done

или Вы могли использовать touch команда так, чтобы ls -1t работал бы.

1
26.09.2013, 01:15
2 ответа

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

sh your_commands

или путем предварительного ожидания команд с hashbang и маркировки файла как исполняемый файл с chmod a+x your_commands:

#!/bin/sh
your commands
go
here

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

 /path/to/your_commands

Кроме того, можно также использовать source функциональность Вашей оболочки, которая выполняет команды из файла в текущей оболочке (в противоположность spwaning новая оболочка, которая является тем, что два выше сделают):

source your_commands

или

. your_commands

(у обоих есть то же значение).

5
27.01.2020, 23:12

Добро пожаловать для Укладки Exchange, и также к Linux Mint!

Вы спрашиваете, существует ли лучший путь, чем вставка в терминал для выполнения длинного ряда команд. Как это происходит, существует: сохраните команды в файл и выполните его как сценарий оболочки.

Например, если Вы сохраняете свои команды в ~/scripts/myscript.sh (~ сокращение для Вашего корневого каталога), можно выполнить его путем ввода этих команд:

# change directory to where the script is
cd ~/scripts
# run the script with bash (most scripts are bash scripts)
bash myscript.sh

Обратите внимание на свой рабочий каталог

Одна вещь высматривать: каталог от того, куда Вы работаете bash myscript.sh будет использоваться в качестве рабочего каталога. Если Ваш сценарий говорит о файле 50m_physical/lakes.sh, который находится в Вашем ~/mylakesproject каталог, затем это будет работать:

cd mylakesproject
bash ~/scripts/myscript.sh
# ~/mylakesproject/50m_physical/lakes.sh exists

и это не будет работать:

cd myotherproject
bash ~/scripts/myscript.sh
# ~/myotherproject/50m_physical/lakes.sh does not exist

и ни один не будет это:

cd scripts
bash myscript.sh
# ~/scripts/50m_physical/lakes.sh does not exist

Удача, и развлекайтесь!

4
27.01.2020, 23:12

Теги

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